我正在尝试进行一个测试,验证(使用 Mockito v1.9.5's )在执行 pass-through 之后调用接口中verify
具有签名的方法,并且我遇到了一个我真的不明白的错误。deinit()
Bar
Foo.deinit()
这是FooTest.java
我正在尝试运行的:
@RunWith(JukitoRunner.class)
public class FooTest {
@Inject
private Foo foo;
@Inject
private Bar bar;
public static class TestModule extends JukitoModule {
@Override
protected void configureTest() {
bind(Foo.class).to(FooImpl.class);
bind(Bar.class).to(BarImpl.class);
bindSpy(BarImpl.class);
}
}
@Test
public void testDeinit() {
foo.init(mock(Baz.class));
foo.deinit();
verify(bar).deinit();
}
@After
public void validate() {
validateMockitoUsage(); //line YY
}
}
Run Code Online (Sandbox Code Playgroud)
运行此程序时,testDeinit()
失败并出现以下错误:
org.mockito.exceptions.misusing.UnfinishedVerificationException:
Missing method call for verify(mock) here:
-> at redacted.impl.BarImpl.deinit(BarImpl.java:XX)
Example of correct …
Run Code Online (Sandbox Code Playgroud) 我想对在java中使用bean配置的单个路由进行单元测试.我在骆驼的行动中读到(第6.1.4章)如何做到这一点:
protected RouteBuilder createRouteBuilder() throws Exception {
return new myRoute();
}
Run Code Online (Sandbox Code Playgroud)
但在我的情况下,溃败需要注册一些bean.我知道如何在独立应用程序中注册bean:请参阅此处 但是如何在"CamelTestSupport"中注册bean?有没有办法在没有注册表的情况下使用bean?可能通过注入它们(所有bean都没有arg构造函数)?我正在使用Guice,在我的测试中我使用的是Jukito(Guice + Mockito).
我正在使用Jukito测试GWTP Presenter,在其中有一个计时器作为重复任务字段的测试仪中,我抛出了此异常。
我正在运行GWT 2.8.2,GWTP 1.6,JUnit 4和Jukito 1.5
测试如下所示:
@RunWith(JukitoRunner.class)
public class MyPresenterTest {
@Inject
MyPresenter presenter;
@Test
public void prepareFromRequestTest(EventBus eventBus,
MyServiceAsync MyService) {
PlaceRequest placeRequest = new PlaceRequest.Builder()
.nameToken(NameTokens.getMyPlace())
.with("aParam", "0110")
.build();
Data data = DataTestFactory.createData();
AsyncStubber.callSuccessWith(data)
.when(myService)
.requestDataToServer(eq("0110"), any());
// the timer scheduleRepeating is called in here:
presenter.prepareFromRequest(placeRequest);
}
}
Run Code Online (Sandbox Code Playgroud)
甚至像以下这样的基本测试也会失败:
@RunWith(JukitoRunner.class)
public class GwtTimerTest {
@Test
public void testTimer() {
Timer timer = new Timer() {
@Override
public void run() {
System.out.println("timer");
}
};
timer.schedule(1000);
}
} …
Run Code Online (Sandbox Code Playgroud)