如何在junit中为返回void并实现runnable的方法编写测试?

时间:2013-11-28 09:48:19

标签: java android junit junit3

我需要为实现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

                                    };
}
}

任何人都可以告诉我如何为该方法编写测试。

2 个答案:

答案 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框架(设置期望/验证)