Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Java/자바] Mockito를 활용한 단위 테스트 본문
Mockito는 Java에서 단위 테스트를 위한 mocking 프레임워크로, 테스트를 보다 쉽게 작성하고 관리할 수 있게 도와줍니다. Mockito에서 자주 사용되는 애노테이션들인 @Mock, @Spy, @Captor, @InjectMocks에 대해 알아보겠습니다.
@Mock
`@Mock` 애노테이션은 Mockito가 Mock 객체를 생성하도록 지시합니다. 테스트하려는 클래스에 Mock 객체를 주입하고 싶을 때 사용됩니다. 이를 통해 테스트 중에 외부 의존성을 대신하여 테스트를 더욱 간단하게 만들 수 있습니다.
@Mock
private SomeService mockService;
@Spy
`@Spy` 애노테이션은 Mockito가 실제 객체의 일부 메서드를 호출하도록 지시합니다. 객체의 일부 메서드만 가짜(mock)로 대체되고 실제 객체의 나머지 부분은 그대로 유지됩니다.
@Spy
private SomeService spyService;
@Captor
`@Captor` 애노테이션은 Mockito가 Mock 객체에 전달된 인자를 캡처하도록 지시합니다. 주로 메서드 호출에 전달된 매개변수를 확인하는데 사용됩니다.
@Captor
private ArgumentCaptor<String> stringCaptor;
@InjectMocks
`@InjectMocks` 애노테이션은 Mockito가 테스트 대상 클래스에 Mock 또는 Spy 객체를 주입하도록 지시합니다. 테스트 대상 클래스 내에서 필드 주입을 통해 의존성을 주입합니다.
@InjectMocks
private SomeController controller;
예제 코드
public class SomeServiceTest {
@Mock
private SomeDependency mockDependency;
@InjectMocks
private SomeService serviceUnderTest;
@Test
public void testSomeMethod() {
// Given
Mockito.when(mockDependency.someMethod()).thenReturn("Mocked Result");
// When
String result = serviceUnderTest.someMethod();
// Then
Assert.assertEquals("Mocked Result", result);
}
}
'프로그래밍' 카테고리의 다른 글
톰캣(Tomcat)과 커넥션풀(DBCP)을 이용한 데이터베이스 연결 설정하기 (0) | 2024.03.20 |
---|---|
[Java/자바] Mockito의 @Mock 애노테이션 (0) | 2024.03.20 |
[Java/자바] Generics(제네릭) 이해하기 (0) | 2024.03.20 |
Java에서 BufferedReader와 BufferedWriter 사용하기 (0) | 2024.03.20 |
[Java/자바] 소수점 n번째 자리까지 반올림하여 출력하기 (0) | 2024.03.20 |