首页 > 解决方案 > 如何对 guice createinjector 方法进行单元测试

问题描述

我有以下主要方法调用,其中我使用静态 createInjector 方法初始化 guice 模块

public static void main(String[] args) {

    Injector injector = Guice.createInjector(Stage.PRODUCTION, new MyServiceModule());
    MyService component = injector.getInstance(MyService.class);
    component.doSomething();
}

除了使用 power-mockito 之外,还有其他方法可以在代码下面进行单元测试吗?人们会像这样测试主要方法吗?

标签: javaunit-testingmockingmockitoguice

解决方案


我不会对这种代码进行单元测试,因为它更麻烦、更晦涩并且几乎没有什么好处。如果您真的想对此进行测试,只需main从测试中调用静态方法,您就需要弄清楚如何确定它是否按预期工作(可能doSomething()在与 main 相同的类中有一个方法委托给component?) .

作为我的应用程序端到端测试的一部分,我会间接测试它,当我启动应用程序并用一些测试戳它以确保一切都很好地粘合在一起时。

请不要使用powermock。这是一个有用的工具,但不是那种可以随便使用的工具,而且绝对不是在现代项目中。


推荐阅读