鼎鼎知识库
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

02使用xUnit进行TDD测试驱动开发.md 1.6KB

使用TDD方式。

    public class MyPrimeService
    {
        public bool IsPrime(int num)
        {
            throw new NotImplementedException("not implemented");
        }
    }

单元测试

        [Fact]
        public void IsPrime_InputIs1_ReturnFalse()
        {
            //Arrange
            var primeService = new MyPrimeService();

            //Act
            bool result = primeService.IsPrime(1);

            //Assert
            Assert.False(result, "1 should not be prime");
        }

修改代码让单元测试通过。

        public bool IsPrime(int num)
        {
            if(num==1)
            {
                return false;
            }
            throw new NotImplementedException("not implemented");
        }

目前单元测试输入条件有限,输入更多条件。

        [Theory]
        [InlineData(-1)]
        [InlineData(0)]
        [InlineData(1)]
        public void IsPrime_ValueLessThanTwo_ReturnFalse(int value)
        {
            //Arrange
            var primeService = new PrimeService.MyPrimeService();

            //Act
            var restul = primeService.IsPrime(value);

            //Assert
            Assert.False(restul, $"{value} should not be prime");
        }

有两个不通过

失败!  - Failed:     2, Passed:     1, Skipped:     0, Total:     3, Duration: 4 ms

其实所有都不应该通过。修改代码:

        public bool IsPrime(int num)
        {
            if(num < 2)
            {
                return false;
            }
            throw new NotImplementedException("not implemented");
        }