我需要为某些类创建测试。主项目(src/main/java/..
)中的这个类很容易注入到另一个类中,因为我有自定义的ResourceConfig类,它声明必须扫描哪些包来寻找服务类。
现在我创建了测试目录(在src/test/java/..
中)并创建了一个类,如:
public class TheMentionedClassIntegrationTest {
@Inject
private TheMentionedClass theMentionedClass ;
@Test
public void testProcessMethod() {
assertNotNull(theMentionedClass);
}
}
但问题是无论我做什么,这个类总是空的。在项目的另一个测试中,我使用的是JerseyTest
类。所以我尝试在此处执行相同操作,使用TheMentionedClassIntegrationTest
扩展JerseyTest
,覆盖configure
方法,创建注册ResourceConfig
的私有Binder
类(默认为整体项目)并注册TheMentionedClassIntegrationTest
。
它没有用。我做了很多不同的尝试,但没有一个是成功的。我认为与HK2
合作极其困难,没有好的文档等等。
你们有没有想过如何将TheMentionedClass注入测试类?也许我的做法是错的?
谢谢!
答案 0 :(得分:8)
最简单的方法是创建li
并使用它来注入测试类,如here所示。例如
ServiceLocator
您也可以使用(制作)JUnit跑步者,如here所示。
对于其他一些想法,您可能希望查看hk2-testing的测试及其包含的一些用例示例。