0

我需要为实现可运行的方法编写 junit 测试,并且代码的整个逻辑都在 run() 方法中。例如:

public  class BookmarkController{
 public void addBookmark(final String url, final String title) {
       Runnable r = new Runnable() {
                   @Override
                   public void run() {
                                     //some logic

                                    };
}
}

谁能告诉我如何为该方法编写测试。

4

2 回答 2

0

你跑addBookmark()然后我假设你有一个getBookmarks()方法。运行该addBookmark()方法后,您检查该getBookmarks()方法以查看您添加的书签是否addBookmark()已添加。如果Runnable预计实现的线程需要一些时间,您可以在 a 中进行测试,RetriedAssert这将在一段时间内一遍又一遍地重试测试。有效地等待一定时长通过,如果超过时长仍发现失败,则为失败。

new RetriedAssert(2000,100){
  public void run() throws Exception{
    assertTrue(yourClass.getBookMarks().contains(bookmark));
  }
}.start();
于 2013-11-28T09:50:58.850 回答
0

一般来说,匿名类相当于私有方法,即:实现细节是私有的,理想情况下你应该测试行为。如果BookMark添加了您的测试检查,应该就足够了。您也可以考虑使用 Mock 框架(设置期望/验证)

于 2013-11-28T10:43:24.483 回答