java – 测试返回类型为void的方法

我是软件测试的新手.在一个教程中,我读到我可以测试一些像这样的方法:

@Test
 public void testMultiply() {
   MyClass tester = new MyClass();
   assertEquals("10 x 5 must be 50", 50, tester.multiply(10, 5));
 } 

所以我必须将一些参数传递给方法并获得返回值.
但在我的情况下,我有一些没有任何参数和返回值的类:

ArrayList al = new ArrayList();

public void Main(){
  methodA();
  methodB();
}

public void methodA(){
  // connect to URL
  // get some data
  for(int i=0; i<someThing; i++){
    al.add(data);
  }
}
public void methodB(){
  // do something with al
}

是否也可以测试它们?例如,正确的值是否来自methodA()中的URL.

解决方法:

可以测试不返回任何内容的方法(void),但必须测试该方法的副作用.它应该有一些副作用,否则这种方法是没用的.

这里的副作用是al改变了.如上所述,此类没有任何其他公开al的方法.添加一个getter方法,该方法返回ArrayList或ArrayList的特定元素.然后,您的测试方法可以调用getter方法来检索值并将其(它们)与期望值进行比较.

上一篇:java – 使用Mockito模拟枚举?


下一篇:java – Mockito方法返回null