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 중국어 웹사이트의 기타 관련 기사를 참조하세요!