Guice:在方法中添加依赖项

时间:2019-06-19 10:59:38

标签: java dependency-injection cucumber guice

我有一个使用Selenium进行端到端测试的Cucumber项目。我的页面类扩展了我的BasePage,并具有@ScenarioScoped批注,用于在步骤之间共享状态。我有一个NavigationStepDefs类,在其中打开不同的页面,我的目标是保留页面对象,以便在以后的步骤中通过按名称调用它们来调用它的方法。问题是我大约有40页,并且我不想将所有页面都插入NavigationStepDefs构造函数中。有什么方法可以只在需要使用一种方法时才插入一页?

我尝试为所需页面添加一个注入器

    public void the_user_opens_the_Administration_page() {
        final Injector injector = Guice.createInjector();
        final SchedulesPage page = injector.getInstance(SchedulesPage.class);
        System.out.println(page.getProcess().getTagName());

但是我得到一个错误


1) No scope is bound to cucumber.runtime.java.guice.ScenarioScoped.```

1 个答案:

答案 0 :(得分:0)

您没有安装任何带有绑定的模块。 所以guice并不真正知道应该如何在类内部进行绑定。