为什么我的测试用例无法用于冰雹方法?

时间:2017-09-16 02:15:39

标签: java unit-testing

返回一个字符串,该字符串由一个以正整数n开头并以1结尾的Hailstone序列组成 字符串应由一系列数字组成,每个数字后跟一个空格。当数字m (除了1)出现在序列中,它应该是nextHailstone(m)。 示例:nextHailstone(1)为“1”,nextHailstone(5)为“5 16 8 4 2 1”。

public static String hailstones (int n)
{

        int calculation = 1;
        System.out.print(n + " ");
        while (n > 1)
        {

          if (n % 2 == 0)
          {

             n /= 2;

           }
           else
           {

             n = (n*3) + 1;

           }
           calculation++;
    System.out.print(n + " ");



    }
        return " ";
}

当我在main方法中调用方法但代码的测试用例失败时,代码工作正常。

@Test
public void testHailstones ()
{
    assertEquals("1 ", hailstones(1));
    assertEquals("16 8 4 2 1 ", hailstones(16));
    assertEquals("7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 ", hailstones(7));
}

这些是测试用例。对此的任何见解都会很棒。谢谢!

1 个答案:

答案 0 :(得分:4)

每次调用函数时都返回" "。您需要构建一个内部字符串并将其作为结果返回。