> Java > java지도 시간 > Java 단위 테스트에 Mockito를 사용하는 방법

Java 단위 테스트에 Mockito를 사용하는 방법

王林
풀어 주다: 2023-04-19 23:22:09
앞으로
1844명이 탐색했습니다.

Mockito 소개

모의 객체의 메소드를 호출할 때 실제 메소드는 실행되지 않지만 object return null, int return 0 등과 같은 반환 유형의 기본값이 그렇지 않으면 언제 지정하여 (method).thenReturn(value) 메서드의 반환 값을 지정합니다. 동시에 모의 객체를 추적할 수 있으며 verify 메서드를 사용하여 해당 객체가 호출되었는지 확인할 수 있습니다. 스파이 개체는 기본적으로 실제 메서드를 실행하며, 반환 값은 when.thenReturn을 통해 재정의될 수 있습니다. mock이 일부 메서드의 실행을 피하고 지정된 값을 직접 반환하는 한 다른 테스트에는 편리하다는 것을 알 수 있습니다.

서비스 테스트 케이스

필수 종속성

  <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>2.23.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
            <version>2.1.13.RELEASE</version>
        </dependency>
로그인 후 복사

코드 샘플

@RunWith(MockitoJUnitRunner.class)
@SpringBootTest()
public class StudentServiceTest {
    @InjectMocks
    StudentService studentService = new StudentServiceImpl();
    @Mock
    StudentDAO     studentDAO;


    @Before
    public void before(){
        Mockito.doReturn(new StudentDO("张三", 18)).when(studentDAO).read(Mockito.anyString());
    }

    @Test
    public void testRead(){
        StudentDO read = studentService.read("");
        Assert.assertNotNull(read);
    }
}
로그인 후 복사

컨트롤러 테스트 케이스

필수 종속성

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.1.14.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path</artifactId>
            <version>2.4.0</version>
        </dependency>
로그인 후 복사

코드 샘플

@RunWith(MockitoJUnitRunner.class)
@SpringBootTest()
public class StudentControllerTest {
    @Resource
    MockMvc mockMvc;

    @InjectMocks
    StudentController studentController;
    @Mock
    StudentService    studentService;

    @Before
    public void before() {
        mockMvc = MockMvcBuilders.standaloneSetup(studentController).build();
        Mockito.doReturn(new StudentDO("张三", 18)).when(studentService).read(Mockito.anyString());
    }

    @Test
    public void testRead() throws Exception {
        MockHttpServletRequestBuilder request = MockMvcRequestBuilders.get("/student/read/1");
        mockMvc.perform(request)
                .andDo(print())
                .andExpect(status().isOk())
                .andExpect(jsonPath("$.name").value("张三"));
    }

}
로그인 후 복사

위 내용은 Java 단위 테스트에 Mockito를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿