Avatar
0
monkey Enlightened
monkey Enlightened
Hướng dấn sử dụng Spring Boot Test controller
Hướng dấn sử dụng Spring Boot Test controller
  • Answer
spring-boot-test
Remain: 5
1 Answer
Avatar
monkey Enlightened
monkey Enlightened
Bước 1. Khởi tạo project và add dependencies:
<span><span>&lt;<span>dependency</span>&gt;</span>
    <span>&lt;<span>groupId</span>&gt;</span>org.springframework.boot<span>&lt;/<span>groupId</span>&gt;</span>
    <span>&lt;<span>artifactId</span>&gt;</span>spring-boot-starter-web<span>&lt;/<span>artifactId</span>&gt;</span>
    <span>&lt;<span>version</span>&gt;</span>$</span><span>{spring.boot.version}</span><span><span>&lt;/<span>version</span>&gt;</span>
<span>&lt;/<span>dependency</span>&gt;</span>
<span>&lt;<span>dependency</span>&gt;</span>
    <span>&lt;<span>groupId</span>&gt;</span>org.springframework.boot<span>&lt;/<span>groupId</span>&gt;</span>
    <span>&lt;<span>artifactId</span>&gt;</span>spring-boot-starter-test<span>&lt;/<span>artifactId</span>&gt;</span>
    <span>&lt;<span>version</span>&gt;</span>$</span><span>{spring.boot.version}</span><span><span>&lt;/<span>version</span>&gt;</span>
    <span>&lt;<span>scope</span>&gt;</span>test<span>&lt;/<span>scope</span>&gt;</span>
<span>&lt;/<span>dependency</span>&gt;</span></span>
<spring.boot.version>2.7.0</spring.boot.version>
Bước 2. Khởi tạo các controller và service, ví du:
package com.example.spring_test.service;

import org.springframework.stereotype.Service;

@Service
public class HelloService {

    public String hello(String who) {
        return "Hello " + who + '!';
    }
}
package com.example.spring_test.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.example.spring_test.service.HelloService;

import lombok.AllArgsConstructor;

@RestController
@AllArgsConstructor
public class HomeController {

    private final HelloService helloService;

    @GetMapping("/hello")
    public String hello(@RequestParam String who) {
        return helloService.hello(who);
    }
}
Bước 3. Tạo lớp test và run test, ví dụ:
package com.example.spring_test.test;

import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.web.servlet.MockMvc;

import com.example.spring_test.service.HelloService;

@SpringBootTest
@AutoConfigureMockMvc
public class HomeControllerTest {

    @MockBean
    private HelloService helloService;

    @Autowired
    private MockMvc mockMvc;

    @Test
    public void helloTest() throws Exception {
        // given
        final String who = "World";
        final String hello = "Hello World!";
        when(helloService.hello(who)).thenReturn(hello);

        // when
        // then
        mockMvc.perform(get("/hello?who=World"))
            .andExpect(status().isOk())
            .andExpect(content().string(hello));

        verify(helloService, times(1)).hello(who);
    }
}
Done!!!
  • 0
  • Reply