我需要为实现runnable的方法编写junit测试,并且代码的整个逻辑在run()方法中。 例如:
public class BookmarkController{
public void addBookmark(final String url, final String title) {
Runnable r = new Runnable() {
@Override
public void run() {
//some logic
};
}
}
任何人都可以告诉我如何为该方法编写测试。
答案 0 :(得分:0)
您运行addBookmark()
然后我假设您有getBookmarks()
方法。运行addBookmark()
方法后,您需要检查getBookmarks()
方法,看看是否添加了添加了addBookmark()
的书签。如果预期实现Runnable
的线程需要一些时间,那么您将在RetriedAssert
中进行测试,该测试会反复重试测试一段时间。有效地等待一段时间进行传球,如果在经过一段时间后仍然发现失败,则表示失败。
new RetriedAssert(2000,100){
public void run() throws Exception{
assertTrue(yourClass.getBookMarks().contains(bookmark));
}
}.start();
答案 1 :(得分:0)
通常,匿名类等同于私有方法,即:实现细节是私有的,理想情况下,您应该测试行为。如果您的测试检查是否添加了BookMark
,那就足够了。您也可以考虑使用Mock框架(设置期望/验证)