NEO*_*NEO 0 java junit unit-testing
我无法更改需要测试的方法的签名.测试代码如下所示
Parser test = new Parser(props);
ArrayList<HDocument> list = new ArrayList<HDocument>();
test.parse("/users/mac/test.xml", list);
System.out.println("Size of list: "+list.size());
assertEquals(5, list.size());
Run Code Online (Sandbox Code Playgroud)
parse 方法签名如下
public void parse(String filename, Collection<HDocument> docs)
Run Code Online (Sandbox Code Playgroud)
解析方法运行正常,但是当我运行测试程序时,列表大小始终为0.我无法更改解析方法签名.我该怎么办?
这是Parser类,
class Parser{
private Collection<HDocument> docs;
public void parse(String filename, Collection<HDocument> docs) {
docs = new ArrayList<HDocument>();
Collection<HDocument> docsFromXml = new ArrayList<HDocument>();
Handler hl = new Handler();
try {
docsFromXml = hl.getDocs(filename);
} catch (Exception e) {
e.printStackTrace();
}
docs = docsFromXml;
System.out.println("Size:"
+ docs.size()); // This prints the size correctly
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果parse应该将结果添加到docs集合中,并且在docs运行该parse方法后大小为零,那么您的测试会告诉您它parse已损坏,或者您调用它是错误的.这就是测试应该做的:告诉你某些东西不起作用.
简而言之:您正在测试parse,并且您的测试正确地告诉您其他内容已被破坏.你的考试没问题; 这parse不一定是错的.(也许您应该问的问题StackOverflow是如何修复您的parse方法.)
| 归档时间: |
|
| 查看次数: |
409 次 |
| 最近记录: |