Reputation: 410
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
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);
}
Upvotes: 2
Views: 1456
Reputation: 28558
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.
Upvotes: 13