我正在使用Mockito做JUnit测试,并且发现了一个断言问题。我创建一个模拟对象,然后使用模拟对象创建一个演示者对象。断言Mockito嘲笑的对象被设置为空
@Mock
Object mFooBar;
private FooPresenter mFooPresenter;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
mFooPresenter = new FooPresenter(mFooBar);
}
在我的演示者的onDestroy()方法中,我将对象清空。
public FooPresenter(Object fooBar) {
mFooBar = fooBar;
}
@Override
public void onDestroy() {
mFooBar = null;
}
然后,当我尝试在我的FooPresenterTest中为mFooBar声明NULL时,它失败,因为它不为空。
@Test
public void testThatObjectsAreNullifiedInOnDestroy() throws Exception {
fooPresenter.onDestroy();
assertNull(mFooBar);
}
这未按
Expected :<null>
Actual :mFooBar
我的问题,然后是,如何在我的测试类来处理的嘲笑对象的引用相比,我实例化运行测试的对象?为什么assertNull在应该被设置为null时失败?
嘿@ kerseyd27,我假设你的'FooPresenter'中的'mFooBar'字段是私人的,是否有任何财产暴露它? – abest
嘿@abest是的它是私人的,并没有暴露的属性。 – kerseyd27