我正在编写一组简单的单元测试。在此特定测试中,我正在测试该函数的所有标准文本输入。

但是,当我尝试编译时,会收到此错误


  ConverterTests.ConvertSixteenthsFractionalToDecimal_AverageCase()':并非所有代码路径都返回值


我应该更改什么来解决此编译错误?

这是代码:

        [TestMethod]
        public double ConvertSixteenthsFractionalToDecimal_AverageCase()
        {
            // arrange
            string input = "1/16";
            int expected = 1;
            // act
            int actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);

            // arrange
            input = "1/8";
            expected = 2;
            // act
            actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);


            // arrange
            input = "3/16";
            expected = 3;
            // act
            actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);

            // arrange
            input = "1/4";
            expected = 4;
            // act
            actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);

            // arrange
            input = "5/16";
            expected = 5;
            // act
            actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);

            // arrange
            input = "7/16";
            expected = 3;
            // act
            actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);

            // arrange
            input = "1/2";
            expected = 8;
            // act
            actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);

            // arrange
            input = "9/16";
            expected = 9;
            // act
            actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);

            // arrange
            input = "5/8";
            expected = 10;
            // act
            actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);

            // arrange
            input = "11/16";
            expected = 11;
            // act
            actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);

            // arrange
            input = "3/4";
            expected = 12;
            // act
            actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);

            // arrange
            input = "13/16";
            expected = 13;
            // act
            actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);

            // arrange
            input = "7/8";
            expected = 14;
            // act
            actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);

            // arrange
            input = "15/16";
            expected = 15;
            // act
            actual = clsDimension.CvtSixteenthsFractionalToDecimal(input);
            // assert
            Assert.AreEqual(expected, actual);

        }

最佳答案

public double ConvertSixteenthsFractionalToDecimal_AverageCase


应该

public void ConvertSixteenthsFractionalToDecimal_AverageCase


测试方法不返回值。

作为旁白:

这不是您编写好的测试的方式,每个安排,操作,断言都应该是它自己的测试用例,否则一个测试失败将阻止其他所有测试运行。

关于c# - C#单元测试。并非所有路径都返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22020609/

10-15 01:04
查看更多