我正在尝试在我的步骤定义中使用 DI。我有一个模块,
public class MyModule extends AbstractModule
{
private final static MyInterface INSTANCE = new MyInterfaceImpl();
@Override
protected void configure()
{
bind(MyInterface.class).toInstance(INSTANCE);
}
}
并希望将此实例注入步骤定义的构造函数中。
public class MyStepDefs
{
private final MyInterface instance;
@Inject
public MyStepDefs(MyInterface instance)
{
this.instance = instance
}
}
我想我需要使用 cucumber-guice.properties 文件配置 GuiceFactory 但我真的不知道这是什么?目前我得到的错误是,
java.lang.NoClassDefFoundError: javax/inject/Singleton
at cucumber.runtime.java.guice.GuiceFactory$CucumberModule.configure(GuiceFactory.java:86)
我还应该使用 Provider 进行构造函数注入吗?