C#单元测试.并非所有路径都返回值

Jer*_*Lin 1 c# unit-testing visual-studio-2012

我正在编写一套简单的单元测试.在这个特定的测试中,我正在测试函数中的所有标准文本输入.

但是当我尝试编译时,我收到了这个错误

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);

        }
Run Code Online (Sandbox Code Playgroud)

Ban*_*San 9

public double ConvertSixteenthsFractionalToDecimal_AverageCase
Run Code Online (Sandbox Code Playgroud)

应该

public void ConvertSixteenthsFractionalToDecimal_AverageCase
Run Code Online (Sandbox Code Playgroud)

测试方法不返回值.

作为旁白:

这不是你如何编写一个好的测试,每个安排,行为,断言应该是它自己的测试用例,否则一个失败将阻止所有其他人运行.