Несколько дней назад я опубликовал этот вопрос , спрашивающий, существует ли более новый подход к Spring AOP и mockito.
Хотя я понимаю, как использовать AOP, мне все еще не хватаетего возвращаемое значение. Все это показало мне, что это не очень популярно - по крайней мере, не так много недавних сообщений.
Если я закомментирую аннотации @Aspect
и @Configuration
в моем классе LoggingAspect
,отрисовка не-aop, все мои тесты зеленые. Если я включу его снова, я начну получать загрузку исключений NullPointerException и множество других ошибок в моих ложных тестовых классах.
Интересно, стоит ли это хлопот.
РЕДАКТИРОВАТЬ добавив больше деталей из моей конкретной реализации.
Контроллер:
@RestController
public class EndpointController {
private EndpointService endpointService;
@Autowired
public EndpointController(EndpointService endpointService) {
this.endpointService = endpointService;
}
@PostMapping(path = "/endpoint", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
private @ResponseBody EndpointResponse doSomething(//... //, @RequestBody SomeObject someObject) throws Exception {
return endpointService.doSomething(someObject);
}
}
В моем тестовом классе у меня есть:
@RunWith(SpringRunner.class)
public class EndpointControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void shouldBeSuccessfulAccessingTheEndpoint() throws Exception {
SomeObject someObject = new SomeObject(// values //);
ObjectMapper mapper = new ObjectMapper();
String payload = mapper.writeValueAsString(someObject);
mockMvc.perform(post("/endpoint").contentType(MediaType.APPLICTION_JSON).content(payload)).andExpect(status().isOK));
}
}
Сбой и выдаетИсключение нулевого указателя. При отладке endpointService
всегда равно нулю.