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><<span>dependency</span>></span>
    <span><<span>groupId</span>></span>org.springframework.boot<span></<span>groupId</span>></span>
    <span><<span>artifactId</span>></span>spring-boot-starter-web<span></<span>artifactId</span>></span>
    <span><<span>version</span>></span>$</span><span>{spring.boot.version}</span><span><span></<span>version</span>></span>
<span></<span>dependency</span>></span>
<span><<span>dependency</span>></span>
    <span><<span>groupId</span>></span>org.springframework.boot<span></<span>groupId</span>></span>
    <span><<span>artifactId</span>></span>spring-boot-starter-test<span></<span>artifactId</span>></span>
    <span><<span>version</span>></span>$</span><span>{spring.boot.version}</span><span><span></<span>version</span>></span>
    <span><<span>scope</span>></span>test<span></<span>scope</span>></span>
<span></<span>dependency</span>></span></span>

Với <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