2014-10-18 79 views
1

我試圖找到最簡潔/最快的方式來測試回調(發生在同一個線程上)執行,並且它只執行一次。斷言在JUnit中調用回調/偵聽器

我最大的努力看起來是這樣的:

class Called { 
     boolean value; 
    } 

    ... 
    Called called = new Called(); 
    object.execute(new Listener() { 
     public void onExecuted() { 
      assertFalse(called.value); 
      called.value = true; 
     } 
    } 
    assertTrue(called.value); 
    ... 

那是因爲它得到好處呢?

回答

2

使用mockito

import org.mockito.Mockito.*; 

... 

@Test 
public void Test { 
    Listener listener = mock(Listener.class); 

    object.execute(listener); 

    verify(listener).onExecuted(); 
} 
+0

完美,謝謝 – 2014-10-20 19:56:58