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

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

        }

最佳答案

public double ConvertSixteenthsFractionalToDecimal_AverageCase


应该

public void ConvertSixteenthsFractionalToDecimal_AverageCase


测试方法不返回值。

作为旁白:

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

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

相关文章:

c# - 使用 EPPlus 导入 Excel 文件时处理空单元格

c# - 执行存储过程时,使用 CommandType.StoredProcedure 与使用 CommandType.Text 相比有什么好处?

c# - 为什么允许我在非 GUI 线程中加载图像?

java - Maven 集成测试和带有配置文件的单元测试

visual-studio - Visual Studio 2012 asp net mvc 3 项目 Razor View

c# - 在一个嵌入代码块中输出两个 viewbag 值

unit-testing - Intellij 显示意图操作 [Alt + Enter] 不起作用

unit-testing - 为什么$provide只能在 'angular.mock.module'函数中使用,$q只能在 'angular.mock.inject'函数中使用?

c++ - Visual Studio 2012 错误 C2039 : 'serialize' : is not a member of 'std::shared_ptr<_Ty>'

visual-studio-2012 - 无法在 VS 2012 中运行 Bower