>  기사  >  Java  >  Mockito의 @Mock 대 @InjectMocks: 언제 어느 것을 사용해야 합니까?

Mockito의 @Mock 대 @InjectMocks: 언제 어느 것을 사용해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-24 06:49:16367검색

@Mock vs. @InjectMocks in Mockito: When to Use Which?

Mockito에서 @Mock과 @InjectMocks를 사용해야 하는 경우

Mockito는 Java에서 모의 ​​작업 및 단위 테스트에 널리 사용되는 프레임워크입니다. 조롱을 위한 @Mock 및 @InjectMocks라는 두 가지 주석을 제공합니다. 테스트에서 모의 ​​개체를 효과적으로 활용하려면 이들의 차이점을 이해하는 것이 중요합니다.

@Mock

@Mock은 모의 개체를 생성하는 데 사용됩니다. @Mock으로 필드에 주석을 달면 Mockito는 지정된 클래스의 객체를 생성하고 이를 모의 클래스로 등록합니다. 이 모의 객체는 모의 객체의 인터페이스 동작을 준수하여 테스트에서 실제 객체에 대한 대체물을 제공합니다.

@InjectMocks

반대로, @InjectMocks는 인스턴스에 주석을 답니다. 시험중인 수업. Mockito는 @Mock 주석으로 생성된 모의 객체를 이 인스턴스에 주입합니다. 이 기술을 사용하면 특정 모의 종속성과 상호작용하면서 테스트 중인 클래스의 동작을 테스트할 수 있습니다.

사용 고려 사항

@Mock 및 @InjectMocks를 활용하려면 다음을 수행해야 합니다. 모의 객체를 초기화하고 주입해야 합니다. JUnit 4에서는 @RunWith(MockitoJUnitRunner.class) 또는 Mockito.initMocks(this)를 사용합니다. JUnit 5의 경우 @ExtendWith(MockitoExtension.class)를 사용합니다.

@Mock 및 @InjectMocks의 사용법을 보여주는 다음 예를 고려하세요.

// JUnit 4
@RunWith(MockitoJUnitRunner.class)
public class SomeManagerTest {

    @InjectMocks
    private SomeManager someManager;

    @Mock
    private SomeDependency someDependency; // injected into someManager
    
    // tests...
}

이 예에서 someManager에는 모의 인스턴스 someDependency가 주입됩니다. 이제 테스트에서는 someManager가 이 모의 객체와 어떻게 상호 작용하는지 확인할 수 있습니다.

결론

효과적인 Mockito 기반 단위 테스트를 위해서는 @Mock 및 @InjectMocks를 적절하게 사용하는 것이 필수적입니다. 이들의 역할을 명확하게 이해함으로써 테스트의 정확성과 신뢰성을 보장할 수 있습니다.

위 내용은 Mockito의 @Mock 대 @InjectMocks: 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.