我如何测试 gwtp addToPopupSlot?
How do I test gwtp addToPopupSlot?
我有一个 gwtp 演示器,在某些情况下,它必须添加到另一个演示器的 popupslot。
如何在测试中验证这个事实?
我正在使用 Jukito 进行测试。
演示者代码:
...
@Override
public void onAddPersonClick() {
editPersonPresenter.initForCreating();
addToPopupSlot(editPersonPresenter);
}
...
测试:
@RunWith(JukitoRunner.class)
public class PersonsPagePresenterTest {
@Inject
PersonPagePresenter personPagePresenter;
@Test
public void testAddPersonClick() {
personPagePresenter.onAddPersonClick();
//how to verify addToPopupSlot(editPersonPresenter);?
}
}
问题是测试中所有注入的演示者都不是模拟的(只有他们的视图是模拟的)
您需要使用 mockito 监视实例,因为您想要验证是否调用了实例方法。请注意,我删除了 PersonPagePresenter 字段上的 @Inject
,因为它是通过 setUp 方法注入的
@RunWith(JukitoRunner.class)
public class PersonsPagePresenterTest {
PersonPagePresenter personPagePresenter;
@Before
public void setUp(PersonPagePresenter personPagePresenter) {
this.personPagePresenter = Mockito.spy(personPagePresenter);
}
@Test
public void testAddPersonClick() {
personPagePresenter.onAddPersonClick();
Mockito.verify(personPagePresenter).addToPopupSlot(editPersonPresenter);
}
}
我有一个 gwtp 演示器,在某些情况下,它必须添加到另一个演示器的 popupslot。
如何在测试中验证这个事实?
我正在使用 Jukito 进行测试。
演示者代码:
...
@Override
public void onAddPersonClick() {
editPersonPresenter.initForCreating();
addToPopupSlot(editPersonPresenter);
}
...
测试:
@RunWith(JukitoRunner.class)
public class PersonsPagePresenterTest {
@Inject
PersonPagePresenter personPagePresenter;
@Test
public void testAddPersonClick() {
personPagePresenter.onAddPersonClick();
//how to verify addToPopupSlot(editPersonPresenter);?
}
}
问题是测试中所有注入的演示者都不是模拟的(只有他们的视图是模拟的)
您需要使用 mockito 监视实例,因为您想要验证是否调用了实例方法。请注意,我删除了 PersonPagePresenter 字段上的 @Inject
,因为它是通过 setUp 方法注入的
@RunWith(JukitoRunner.class)
public class PersonsPagePresenterTest {
PersonPagePresenter personPagePresenter;
@Before
public void setUp(PersonPagePresenter personPagePresenter) {
this.personPagePresenter = Mockito.spy(personPagePresenter);
}
@Test
public void testAddPersonClick() {
personPagePresenter.onAddPersonClick();
Mockito.verify(personPagePresenter).addToPopupSlot(editPersonPresenter);
}
}