简体   繁体   English

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

[英]C# unit Test. Not all paths return value

I am writing a simple set of unit tests. 我正在编写一组简单的单元测试。 In this particular test, I am testing all of the standard text inputs into the function. 在此特定测试中,我正在测试该函数的所有标准文本输入。

However when I attempt to compile, I recieve this error 但是,当我尝试编译时,会收到此错误

ConverterTests.ConvertSixteenthsFractionalToDecimal_AverageCase()': not all code paths return a value ConverterTests.ConvertSixteenthsFractionalToDecimal_AverageCase()':并非所有代码路径都返回值

What should I change to fix this compile error? 我应该更改什么来解决此编译错误?

Here is the code: 这是代码:

        [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

should be 应该

public void ConvertSixteenthsFractionalToDecimal_AverageCase

test methods don't return a value. 测试方法不返回值。

As an aside: 作为旁白:

This isn't how you write a good test , each arrange, act, assert should be it's own test case, otherwise a failure on one will prevent all the others from running. 这不是您编写好的测试的方式 ,每个安排,操作,断言都应该是它自己的测试用例,否则一个测试失败将阻止所有其他测试运行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM