单元测试guice模块,其中一个模块安装另一个模块

disho6za  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(494)

仅供参考,我正在使用mockito和testng
我知道如何使用 @Bind 模仿我的外部依赖。
这里我有一个模块(比如 Foo )哪个有 install(new Bar());configure 方法。
我可以在foo中绑定各种外部依赖项,但我不知道如何处理bar中的事情。
(例如)

  1. public class FooTest {
  2. @Bind
  3. @Mock
  4. SomeExternalDependency1 someExternalDependency1;
  5. @Bind
  6. @Mock
  7. SomeExternalDependency2 someExternalDependency2;
  8. @BeforeClass
  9. public void setup() {
  10. MockitoAnnotations.initiMocks(this);
  11. injector = Guice.createInjector(Modules.override(new Foo())with(
  12. new TestFooModule()), BoundFieldModule.of(this));
  13. injector.injectMembers(this);
  14. }
  15. @Test
  16. public void testSomething() {
  17. //asssert something here
  18. }
  19. static class TestFooModule extends AbstractModule {
  20. @Override
  21. protected void configure() { }
  22. }

但是当我运行这个测试时,它会抱怨 Bar .
如何在不示例化bar模块的情况下测试foo模块?
对于没有安装“子”模块的模块,这种测试工作正常。

z3yyvxxp

z3yyvxxp1#

我需要这么做 bind @provides from条位于 TestFooModule . 解决了我的问题。

相关问题