如何使用Junit测试工具测试void方法?

use*_*462 29 java junit unit-testing void

我碰巧实现了一个void followlink(obj page,obj link)简单地添加页面和链接到队列的方法.我试图测试这种方法是不成功的.

我想要的是测试队列中包含从followlink方法收到的页面和链接.我的测试类已经扩展了TestCase.那么测试这种方法的最佳方法是什么?

Bil*_*ard 42

JUnit FAQ中对测试方法返回一个部分void.在您的情况下,您想要测试所调用方法的副作用.

FAQ中给出的示例测试了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)


Pat*_*ald 15

您可以在调用方法之前和之后测试队列的大小,例如:

int size = queue.length();
followLink(page, link);
assertEquals(size+1, queue.length()); // or maybe size+2?
Run Code Online (Sandbox Code Playgroud)

您可能要做的另一件事是从空队列开始,调用followLink,然后将第一个项目出列并测试其值.