[英]Guice @Provides to provide class which depends on two parameters
[英]Test class which depends on Guice Provider<T>
如何測試依賴Provider<>
? 請參見下面的代碼。
class ToTest {
@Inject
Provider<Processor> processorProvider;
public buildData() {
processorProvider.get().process();
}
class ProcessorProviderImpl implements Provider<Processor> {
@Inject
private Handler someHandler;
public Processor get() {
return new MyProcessor(somehandler)
}
}
public static class TestModule extends JukitoModule {
@Override
protected void configureTest() {
bind(Processor.class).toProvider(
ProcessorInstanceProviderImpl.class);
bindMock(SubHandler.class).in(TestSingleton.class);
}
}
class Handler {
@Inject
private SubHandler subHandler; // this is singleton instance
}
}
因此,當我模擬subHandler
時不起作用,並且當我運行單元測試時,我得到一個NullPointerException
,其中subHandler.handle()
被調用。
您可以使用Providers.of()使用協作者實例的提供程序來初始化processorProvider。
test = new ToTest();
test.processorProvider = Providers.of(processorMock);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.