aza*_*lut 3 java testing dependency-injection jersey hk2
我需要为某些类创建测试.主项目(src/main/java/..)中的这个类很容易注入到另一个类中,因为我有自定义的ResourceConfig类,它声明必须扫描哪些包来寻找服务类.
现在我创建了测试目录(in src/test/java/..)并创建了一个类,如:
public class TheMentionedClassIntegrationTest {
@Inject
private TheMentionedClass theMentionedClass ;
@Test
public void testProcessMethod() {
assertNotNull(theMentionedClass);
}
}
Run Code Online (Sandbox Code Playgroud)
但问题是无论我做什么,这个类总是空的.在项目的另一个测试中,我正在使用JerseyTest课程.所以我试着在这里做同样的事情,TheMentionedClassIntegrationTest使用JerseyTest,覆盖configure方法扩展,创建我的私有ResourceConfig类,它注册Binder(整个项目的默认值)并注册TheMentionedClassIntegrationTest.
它没有用.我做了很多不同的尝试,但没有一个是成功的.我认为合作HK2非常困难,没有好的文件或者......
你们有没有想过如何将TheMentionedClass注入测试类?也许我的做法是错的?
谢谢!
最容易做的事情是刚刚创建的ServiceLocator,并用它来注入测试类,如看这里.例如
public class TheMentionedClassIntegrationTest {
@Inject
private TheMentionedClass theMentionedClass;
@Before
public void setUp() {
ServiceLocator locator = ServiceLocatorUtilities.bind(new YourBinder());
locator.inject(this);
}
@Test
public void testProcessMethod() {
assertNotNull(theMentionedClass);
}
}
Run Code Online (Sandbox Code Playgroud)
你可以选择使用(使)JUnit运行,因为看到这里.
对于其他一些想法,您可能需要查看hk2测试的测试,以及一些用例示例的所有包含项目.
| 归档时间: |
|
| 查看次数: |
1564 次 |
| 最近记录: |