JUnit 4测试用例

-4 java junit4 testcase

我需要帮助为此代码创建JUnit 4测试用例.

public static int computeValue(int x, int y, int z)
{
    int value = 0;

    if (x == y) 
      value = x + 1;
    else if ((x > y) && (z == 0))
           value = y + 2;
         else
           value = z;

     return value;
}
Run Code Online (Sandbox Code Playgroud)

编辑

我想要这样的东西测试if else语句

public class TestingTest {

    @Test
        public void testComputeValueTCXX() {

        }

        …

    @Test
        public void testComputeValueTCXX() {

        }

        }
Run Code Online (Sandbox Code Playgroud)

Gho*_*ica 5

让你入门的东西......

首先是"扩展"版本,可能对"新手"更有帮助:

@Test
public void testXandYEqual() {
  // arrange
  int x=0;
  int y=0;
  int anyValueBeingIgnored=0;
  // act
  int result = ThatClass.computeValue(x, y, anyValueBeingIgnored);
  // assert
  assertThat(result, is(1));
}
Run Code Online (Sandbox Code Playgroud)

以上测试了那些级联的ifs的第一个案例; 其中assertThat是众多JUnit断言之一; and is()是一种hamcrest匹配器方法.此外,这就是我写这个测试用例的方法:

@Test
public void testXandYEqual() {
  assertThat(ThatClass.computeValue(0, 0, 1), is(1));
}
Run Code Online (Sandbox Code Playgroud)

(主要区别在于:对我来说,单元测试不应包含任何我不需要的信息;在这个意义上:我希望它尽可能纯粹,简洁,简洁)

基本上,您希望编写不同的测试,以涵盖通过逻辑的所有路径.您可以使用众多现有覆盖工具之一来确保覆盖所有路径.

或者,您也可以查看参数化测试.含义:您可以将所有不同的"调用参数"放入表中,而不是创建大量的测试方法,而每个测试方法都只使用不同的参数调用实际方法.然后JUnit从该表中获取所有数据,并在调用测试中的"目标"方法时使用它.