gpt4 book ai didi

java - 如何在 TestNG 测试用例中使用 Governator 注入(inject)依赖项?

转载 作者:行者123 更新时间:2023-12-03 05:02:53 26 4
gpt4 key购买 nike

我正在开发一个使用 TestNG 的测试自动化框架。我决定使用依赖注入(inject)模式来实现更具可读性、可重用的页面对象和测试。

我选择了Google Guice,因为TestNG提供了使用Guice模块注入(inject)测试对象的内置支持。我只需要指定我的 Guice 模块,正如您在下一个代码片段中看到的那样:

    @Guice(modules = CommModule.class)
public class CommunicationTest {

@Inject
private Communication comms;

@Test
public void testSendMessage() {
Assertions.assertThat(comms.sendMessage("Hello World!")).isTrue();
}
}

到目前为止一切顺利,尽管我需要更多高级 DI 功能,例如:

  • 生命周期管理
  • 配置到字段映射
  • 通用绑定(bind)注释

因此,我想使用Netflix/Governator因为它通过这些功能增强了Google Guice。为了触发 Governator 功能,我必须通过它而不是 TestNG 创建 Injector。例如:

    Injector injector = LifecycleInjector.builder()
.withModules(CommModules.class).build().createInjector();

我希望尽可能做到透明,就像 TestNG 所做的那样。

我想知道是否:

  • 是否可以向 TestNG 提供我自己的 Injector 实例,以便重用 @Guice 注释方法?
  • 您知道有什么库可以将 GovernatorTestNG 集成吗?

您可以在 here 中找到到目前为止我所做的事情。

最佳答案

直到现在这还是不可能的。我已经在最新的 TestNG 快照版本中修复了这个问题。它应该在即将推出的 TestNG 版本中可用(任何高于 7.0.0 的版本)

我为跟踪此问题而创建的问题:https://github.com/cbeust/testng/issues/2199

简而言之,您可以执行以下操作:

  • 实现接口(interface)org.testng.IInjectorFactory
  • 通过命令行参数插入新创建的实现的完全限定类名-dependencyinjectorfactory

关于java - 如何在 TestNG 测试用例中使用 Governator 注入(inject)依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59091590/

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