RESTEasy端点的集成测试
我想在REST端点上执行集成测试,但遇到了问题 下面是我的终点。注意:我不能更改这部分代码RESTEasy端点的集成测试,rest,integration-testing,resteasy,Rest,Integration Testing,Resteasy,我想在REST端点上执行集成测试,但遇到了问题 下面是我的终点。注意:我不能更改这部分代码 @Path("/people") public class PersonResource { private final PersonService personService; @Inject public PersonResource(final PersonService personService) { this.personService = pers
@Path("/people")
public class PersonResource {
private final PersonService personService;
@Inject
public PersonResource(final PersonService personService) {
this.personService = personService;
}
@GET
@Produces("application/json")
public List<Person> getPersonList() {
return personService.getPersonList();
}
}
但是,这会导致设置方法的最后一行出现以下错误
我研究了注册表API,认为可能应该改用addSingletonResource,所以我将最后一行设置更改为dispatcher.getRegistry.addSingletonResourcepersonResource;并添加了以下内容
@Inject
private PersonResource personResource;
但这会导致安装程序的最后一行出现NullPointerException
对嘲弄的批评没有多大帮助。有人能指出我哪里出了问题吗?谢谢。你需要做两件事 将无参数构造函数添加到源类: 在测试类中,使用PersonService类的实例初始化PersonResource类: 如果需要,可以模拟PersonService类:
private Dispatcher dispatcher;
@Mock
private PersonService service;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
dispatcher = MockDispatcherFactory.createDispatcher();
PersonResource resource= new PersonResource(service);
ispatcher.getRegistry().addSingletonResource(resource);
}
希望有帮助
@Inject
private PersonResource personResource;
public PersonResource() {
this(null)
}
dispatcher.getRegistry().addSingletonResource(new PersonResource(new PersonService()));
private Dispatcher dispatcher;
@Mock
private PersonService service;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
dispatcher = MockDispatcherFactory.createDispatcher();
PersonResource resource= new PersonResource(service);
ispatcher.getRegistry().addSingletonResource(resource);
}