Jeremy Lin
Jeremy Lin

Reputation: 410

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

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

Answers (1)

BanksySan
BanksySan

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

Related Questions