У меня есть тестовый класс, в котором @Autowired
есть два разных класса. Один из них - @Service, а другой - @ RestController.
Когда я использую @Service, он отлично работает.
Когда я использую @RestController, он генерирует исключение NullPointerException.
Есть ли какая-то причина, по которой он не может подключить контроллер?Я подумал, что это может быть связано с созданием веб-контекста, но я также попытался добавить SpringBootTest с веб-средой, указывающей на MOCK (и другие), чтобы посмотреть, получит ли это его.
Я также обошел вокругMockMvc, но я не совсем уверен, как это должно работать.
Есть ли способ легко вызвать один из этих контроллеров, чтобы выполнить полный интеграционный тест?
@Autowired
private ThingService tservice;
@Autowired
private ThingController tconn;
@Test
public void testRunThing() {
Thing t = new Thing(1, "Test");
tservice.configureThing(t);
Thing t2 = new Thing(1, "Second thing");
tconn.getThing(t2);
t3 = tservice.findThing(1);
assertEqual(t3.getValue(), "Second thing");
}
The *Функция 1015 * выполняет некоторые функции, в том числе в конечном итоге сохраняется в БД (в данном случае это H2, который, в свою очередь, автоматически подключен через репозиторий).
Функция tconn
обрабатывает обновление так, как если бы оно было отправленодо остальной конечной точки (в этом случае она обновит «вещь» с идентификатором 1 до нового строкового значения)
нулевой указатель появляется при вызове tconn.getThing()
.