我是CDI的新手, 我正在借助cdi-unit和jersey测试框架编写junit。
@RunWith(CdiRunner.class)
public class ServiceApiTest extends JerseyTest {
@Override
public WebAppDescriptor configure() {
return new WebAppDescriptor.Builder()
.initParam(WebComponent.RESOURCE_CONFIG_CLASS,
ClassNamesResourceConfig.class.getName())
.initParam(
ClassNamesResourceConfig.PROPERTY_CLASSNAMES,
testService.class.getName() + ";").build();
}
@Test
public void testOnMessage() throws Exception {
ClientResponse response = resource().path("/testService").get(ClientResponse.class);
System.out.println(response);
}
//...
}
这里的测试服务是基于球衣的其余API,该API使用CDI进行DI。但是@Inject下的类未初始化。
我已经检查并发现可以使用@ AdditionalPackages / @ AdditionalClasspath来启用类的发现,但没有成功。我应该怎么做才能让CDI发现@Inject所需的所有类