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

测试代码示例:

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(?)

最佳答案

布莱恩

使用验证。例如,代替断言,运行

verify(adm).countObservers( AnyObject)


并检查http://mockito.googlecode.com/svn/branches/1.5/javadoc/org/mockito/Mockito.html的第一章

干杯,
一种。

07-26 05:02