mockito - 伪造addObserver

时间:2011-02-09 22:27:39

标签: java mocking mockito observable

我从mockito开始,并想知道如何假装添加一个观察者。我想编写一个测试,确保在函数调用后观察者计数增加。

示例测试代码:

MyClassUnderTest instance = new MyClassUnderTest();
AudioDeviceManager adm = mock(AudioDeviceManager.class);

assertEquals(adm.countObservers(), 0);

instance.setup(adm, microphone);
//Inside the setup function, microphone is added as an observer 
//to the device manager: adm.addObserver(microphone);

assertEquals(adm.countObservers(), 1);

由于adm是模拟,我知道我必须定义addObserver的逻辑,但我不知道该怎样 - when(adm.addObserver(Observer o)).then(?)

2 个答案:

答案 0 :(得分:2)

布赖恩,

使用验证。例如,运行

而不是断言
verify(adm).countObservers( AnyObject)

并查看http://mockito.googlecode.com/svn/branches/1.5/javadoc/org/mockito/Mockito.html

的第一章

干杯, 一个。

答案 1 :(得分:1)

如果您正在测试MyClassUnderTest,那么您不应该关心adm的作用。为AudioDeviceManager编写一组单独的测试用例,而不是模拟它。