반응형

Spring에서 테스트 클래스 사용을 위한 두 가지 어노테이션들에 대해 알아봅시다.

 

우선, Mokito를 사용하기 위해서는 아래와 같은 코드 작성을 해줘야 합니다. 테스트클래스 위에 @RunWith 어노테이션을 작성하여 Mock 객체를 사용하거나, @RunWith 어노테이션을 작성하지 않을 경우 setUp() 메소드를 아래처럼 만들어줍니다. 

 

@RunWith(MokitoJunitRunner.class)
public class TestClass {

}

public class TestClass {

    @BeforeEach
    public void setUp() {
        MokitoAnnotations.initMocks(this);
    }
}

 

@Mock

 

실제 인스턴스가 없는 가상의 Mock 인스턴스를 만들어 반환합니다.

 

@MockBean

 

ApplicationContext에 Mock 객체를 추가합니다.

 

@InjectMock

 

@Mock이나 @Spy 객체를 자신의 멤버 클래스와 일치하면 주입합니다.

 

@SpyBean

 

ApplicationContext에 Spy 객체를 추가합니다.

 

 

@Mock, @MockBean의 차이

 

@MockBean은 @Mock과 달리 spring-boot-test에서 제공하는 어노테이션으로, Spring이 관리하는 Bean들 중에서 하나 이상을 Mock 객체로 사용하고 싶을 때 사용합니다.

반응형

+ Recent posts