Mockito 및 EasyMock과 같은 조롱 프레임 워크를 사용하면 단위 테스트 중에 테스트중인 장치를 종속성에서 분리 할 수 있습니다. 이 격리는 테스트가 장치 자체의 기능에만 초점을 맞추면 외부 요인이 테스트 결과에 영향을 미치지 않도록합니다. 예를 들어 인기있는 선택 인 Mockito를 사용하는 방법을 살펴 보겠습니다.
먼저 프로젝트의 pom.xml
(maven) 또는 build.gradle
(Gradle)에 mockito 종속성을 추가해야합니다. 그런 다음 테스트 클래스 내에서 Mockito.mock()
메소드를 사용하여 모의 개체를 만듭니다. 이 모의 객체는 실제 종속성의 동작을 시뮬레이션합니다.
<code class="java">import org.mockito.Mockito; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; // ... your classes ... public class MyServiceTest { @Test void testMyMethod() { // Create a mock object of the dependency DependencyInterface dependency = Mockito.mock(DependencyInterface.class); // Set up the behavior of the mock object Mockito.when(dependency.someMethod("input")).thenReturn("expectedOutput"); // Create an instance of the class under test, injecting the mock object MyService service = new MyService(dependency); // Call the method under test String result = service.myMethod("input"); // Assert the expected result assertEquals("expectedOutput", result); } }</code>
이 예에서는 DependencyInterface
MyService
의 종속성입니다. 우리는 DependencyInterface
의 모의를 만들고 Mockito.when()
사용하여 동작을 정의합니다. Mockito.when(dependency.someMethod("input")).thenReturn("expectedOutput")
someMethod
"입력"으로 호출되면 "예상 외식"을 반환해야한다는 것을 지정합니다. 마지막으로, 우리는 MyService
의 myMethod
예상 값을 반환한다고 주장합니다. EasyMock은 구문이 약간 다르지만 비슷한 패턴을 따릅니다.
조롱 프레임 워크로 효과적인 단위 테스트를 작성하면 몇 가지 모범 사례를 신중하게 고려해야합니다.
testMethodName_GivenCondition_WhenAction_ThenResult
) 이독성에 도움이됩니다.복잡한 의존성을 다룰 때 다음과 같은 전략을 고려하십시오.
Mockito.spy()
사용하여 스파이 객체를 만듭니다. 이를 통해 실제 물체의 특정 방법을 조롱하면서 다른 사람들을 손대지 않게합니다. 이것은 부분적으로 조롱 된 종속성과 상호 작용을 테스트하려는 경우 유용합니다.몇 가지 일반적인 함정은 장치 테스트의 효과를 방해 할 수 있습니다.
Mockito.doThrow()
사용하여 조롱 된 종속성으로 던져진 예외를 시뮬레이션하십시오.@InjectMocks
(mockito)를 사용하지 않음 : 간단한 경우 @InjectMocks
사용하면 종속성 주입을위한 보일러 플레이트 코드를 줄일 수 있습니다. Mockito가 Mock Objects를 주입 할 수 있도록 종속성을 위해 @Mock
사용해야합니다.이러한 모범 사례를 따르고 이러한 일반적인 함정을 피하면 Mockito 및 EasyMock과 같은 조롱 프레임 워크를 효과적으로 활용하여 Java 응용 프로그램에 대한 강력하고 신뢰할 수있는 단위 테스트를 작성할 수 있습니다.
위 내용은 Java 단위 테스트에서 Mockito 또는 EasyMock과 같은 조롱 프레임 워크를 어떻게 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!