我是软件测试的新手.在一个教程中,我读到我可以测试一些像这样的方法:
@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方法来检索值并将其(它们)与期望值进行比较.