如何使用正确的参数测试方法?

时间:2011-10-25 18:28:15

标签: java unit-testing mocking mockito

我的应用有两个类,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));

1 个答案:

答案 0 :(得分:2)

你需要传递一个模拟的AlarmBell

示例:

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

   watcher.onFire(1);

   verify(alarm).ring(2);
}
相关问题