gpt4 book ai didi

java - 如何对使用 Google Guice 的类进行单元测试?

转载 作者:行者123 更新时间:2023-11-30 10:16:41 24 4
gpt4 key购买 nike

我有一个看起来像这样的 java 类:

@Inject
PerPixelImageUpdater(PixelUpdaterFactory pixelUpdaterFactory, @Assisted BufferedImage image){
this.pixelUpdater = pixelUpdaterFactory.create(image);
}

public void someMethod(){
// some stuff
this.pixelUpdater.doSomething();
}

Google Guice 被用于依赖注入(inject)。

我正在尝试编写单元测试来覆盖 someMethod(),但我不确定实例化被测类的最佳方法。

我最初的尝试是使用 Guice 来创建类:

ImageUpdaterFactory imageUpdaterFactory = injector.getInstance(ImageUpdaterFactory.class);
PerPixelImageUpdater perPixelImageUpdater = (PerPixelImageUpdater) imageUpdaterFactory.create(image);

但我不确定模拟对 this.pixelUpdater.doSomething() 调用的最佳方式,因此我可以在不同场景下测试该方法中的其他逻辑。

使用 new 调用构造函数并传入模拟工厂会更好吗?在使用 Guice 对类进行单元测试时,我很难找到有关推荐最佳实践的任何文档。

最佳答案

刚刚将我所有的单元测试从使用 Guice 创建的对象重写为手动实例化的对象,我可以肯定地说手动创建它们对于测试来说要好得多。它只是提供了更多的灵 active 。用模拟、伪造、测试实现替换一个或所有参数要容易得多。

我正在使用 JUnit 5 依赖项注入(inject)来让我自己更轻松一些,它有一个“标准”扩展,它提供了 Guice 通常会创建的一些更常用的对象图,并在需要时使用它。但是在测试该图的一小部分时,只需手动创建对象即可。

关于java - 如何对使用 Google Guice 的类进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49942599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com