WickeTester - IllegalStateException:没有绑定到应用程序的CDI上下文

时间:2013-11-17 16:13:29

标签: wicket cdi validation illegalstateexception wicket-tester

我有Wicket Form和ProjectNameValidator类:

@Inject
ProjectDao dao;

 public ProjectNameValidator() {       
    CdiContainer.get().getNonContextualManager().inject(this);
}

这里的注入是因为@Inject注释仅在Wicket组件或Behavior中有效,这里没有CdiContainer.get()为null.getNonContextualManager()。inject(this);

但是当我有WicketTester,TestCreateprojectPage:

public class TestCreateProject {

private WicketTester tester;

@Before
public void setUp() throws Exception {
    tester = new WicketTester();
}
@Test
public void createProjectPageRendersSuccessfully() {

    tester.startPage(CreateProject.class);

    tester.assertRenderedPage(CreateProject.class);

} }

我在此行的ProjectNameValidator中的CreateProject.java中的Form上遇到异常:

CdiContainer.get().getNonContextualManager().inject(this);

IllegalStateException:没有绑定到应用程序的DCI上下文。

1 个答案:

答案 0 :(得分:1)

您的应用程序中有一个单独的CdiContainer,它未在测试范围内初始化。所以CdiContainer.get()实际上是空的。了解如何初始化CdiContainer测试上下文,它取决于您的实现,并将其添加到测试setUp()。