我正在编写一组简单的单元测试。在此特定测试中,我正在测试该函数的所有标准文本输入。
但是,当我尝试编译时,会收到此错误
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/