将对象注入到testNG测试类中非常简单,它主要是为我们处理的,但是如何将google guice DI构建到我的框架中并将其用于不一定要测试的类?
我想使用简单的依赖注入为我的Page Object类的依赖注入,这些与testNG没什么关系,所以我们如何才能为那些初始化依赖?
以下是我想要替换的一段简单示例:
public class HeaderComponent extends AbstractBasePageObject {
private static final Logger LOG = LoggerFactory.getLogger(HeaderComponent.class);
private MenuComponent menu = new MenuComponent(getDriver());
public HeaderComponent(NgWebDriver ngdriver) {
super(ngdriver);
}
public MenuComponent getMenuComponent() {
return menu;
}
}
这个类与testNG本身完全无关,所以如何初始化所有结果:
@Inject
MenuComponent menu
我尝试菜单的所有内容都会抛出一个nullPointerException,因为我觉得我有点麻烦有点加载我认为。
答案 0 :(得分:2)
我为您创建了一些常规示例 - test with injection example
我希望,它可以按照您的预期运作。它提供了一些测试配置,将它们注入驱动程序,最后将驱动程序注入测试组件。
结果测试如下:
import com.google.inject.Inject;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;
@Guice(modules = {TestModule.class})
public class SimpleTest {
@Inject
ComponentUnderTest component;
@Test
public void sampleTest() {
System.out.println(component.getParamToTest());
System.out.println(component.param);
System.out.println(component.elseone);
}
}