2011-10-25 2 views
0

내 앱에는 FireWatcherAlarmBell의 두 클래스가 있습니다. 화재가 시작될 때, 감시자는 레벨과 함께 벨을 울려야합니다. 작은 화재의 경우 작은 경보 수준으로 벨소리를 울리십시오. 큰 화재의 경우에는 미친 듯이 벨소리를 울리십시오.메서드가 올바른 매개 변수로 호출되었는지 테스트하는 방법은 무엇입니까?

class FireWatcher { 
    AlarmBell bell; 
    void onFire(int fireLevel) { bell.ring(2 * fireLevel); } 
} 

class AlarmBell { 
    void ring(int alarmLevel) { ... } 
} 

나는 올바른 수준의 방법 반지를 호출 확인 FireWatcher을 테스트 할 수 있습니다. 모키토 (Mockito)로 어떻게 할 수 있습니까?

다음과 비슷한 것을 원하지만 문서에서 아무것도 찾을 수 없습니다.

when(fireWatcher.onFire(1)).expect(mockAlarmBell.ring(2)); 

답변

2

AlarmBell을 조롱해야합니다.

예 :

@Test 
public void watcherShouldRingTheAlarmBellWhenOnFire() { 
    AlarmBell alarm = mock(AlarmBell.class); 
    FireWatcher watcher = new FireWatcher(alarm); 

    watcher.onFire(1); 

    verify(alarm).ring(2); 
} 
관련 문제