如何在JUnit中测试void方法

Vee*_*era 7 java junit

如何使用JUnit测试void方法.

void add(int a, int b) {
 int c= a + b;
}
Run Code Online (Sandbox Code Playgroud)

如何在Java中使用Junit测试上述方法.

Bob*_*der 15

如果方法有副作用,您可以在JUnit测试中检查它们.

在您的示例中,该方法没有副作用,因此无需测试.

如果你仍然想测试它,你可以使用反射来做到这一点,但我不认为这是一个好习惯.

您可以查看JUnit FAQ相关部分:

如何测试不返回任何内容的方法?

通常,如果方法不返回值,则会产生一些副作用.实际上,如果它没有返回值并且没有副作用,它就没有做任何事情.

可能有一种方法可以验证副作用是否按预期实际发生.例如,考虑类中的add()方法Collection.有方法可以验证副作用是否发生(即添加了对象).您可以检查大小并断言它是预期的:

@Test
public void testCollectionAdd() {
    Collection collection = new ArrayList();
    assertEquals(0, collection.size());
    collection.add("itemA");
    assertEquals(1, collection.size());
    collection.add("itemB");
    assertEquals(2, collection.size());
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用MockObjects.

相关问题是设计用于测试.例如,如果您有一个要输出到文件的方法,请不要传入文件名,甚至是传递文件FileWriter.相反,传入一个Writer.这样,您可以传入一个StringWriter捕获输出以进行测试.然后,您可以添加一个方法(例如writeToFileNamed(String filename))来封装FileWriter创建.