Я хотел написать тест для моего контроллера mvc Spring. Я следую официальной документации от https://spring.io/blog/2016/04/15/testing-improvements-in-spring-boot-1-4 и поэтому только что обновил версию to 1.4
и добавил весеннюю загрузку, как предлагает документ.Spring boot 1.4 - Проверка API REST
я добавил следующие зависимости:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
и родительским
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
Мой LoginController API, который я хочу, чтобы проверить, выглядит так:
@RequestMapping(value = { "/login" }, method = RequestMethod.GET)
public @ResponseBody ResponseEntity<HashMap<String, Object>> login() {
// some logic to get Customer
return new ResponseEntity<>(customer, HttpStatus.OK);
}
и согласно документации вот мой тест:
@RunWith(SpringRunner.class)
@WebMvcTest(LoginController.class)
@SpringBootTest
public class AuthorizationAndAuthenticationTest extends WebSecurityConfigurerAdapter {
@Autowired
private WebApplicationContext webApplicationContext;
private LoginController loginController;
@Autowired
private TestRestTemplate restTemplate;
@MockBean
private LoggingService loggingService;
@Test
public void test() {
given(this.loggingService.logInfoMessage("some Dummy Message", this.getClass())).
this.restTemplate.getForObject("/login", Object.class);
}
}
Проблемы: 1. Поскольку Логин Контроллер использует множество служб, я хотел поиздеваться их с помощью «дал» но это дает проблему компиляции, кажется, что я не хватает какой-то зависимость, хотя не уверен. 2.TestRestTemplate устарел и какова альтернатива? Я не нашел альтернативы.
Это первый раз, когда я буду писать тесты, используя Spring framework, поэтому я могу просмотреть некоторые детали.
Пожалуйста, помогите мне с этим.