Java의 모의 객체

Zeeshan Afridi 2023년10월12일
Java의 모의 객체

모의 객체는 해당 객체에서 실제 코드를 실행하지 않고도 실제 객체를 시뮬레이션하고 검증하는 데 도움이 됩니다. 메서드 호출에 대한 특정 결과를 반환하도록 모의를 설정하고 메서드가 호출되었는지 여부를 쉽게 확인할 수 있습니다.

위에서 논의한 바와 같이 Mock 객체는 단위 테스트에 사용됩니다. 테스트하려는 메서드의 개체가 있고 해당 메서드가 다른 개체에 종속되어 있는 경우 해당 종속성의 실제 인스턴스가 아닌 종속성의 모의를 만들고 개체를 테스트할 수 있습니다. 격리 상태.

Java의 모의 객체

모의 객체 생성을 위한 일반적인 Java 프레임워크에는 JMockEasyMock이 있습니다. 이 두 프레임워크를 사용하면 일반적으로 모의 개체를 만들 수 있으며 그에 따라 동작을 정의하여 반환 값과 효과에서 정확히 무엇을 기대해야 하는지 알 수 있습니다.

예를 들어, 한 가지 일반적인 사용 사례는 DAO(Data Access Objects) 계층과 비즈니스 로직을 수행하는 컨트롤러가 있는 MVC(Model-View-Controller) 애플리케이션일 수 있습니다. 컨트롤러를 테스트하고 컨트롤러에 DAO(데이터 액세스 개체)에 대한 종속성이 있는 경우 컨트롤러에 더미 개체를 반환하는 DAO의 모의 개체를 만들 수 있습니다.

모의 객체는 테스트하려는 애플리케이션의 기능을 테스트하는 데 도움이 됩니다. 그 이유는 이러한 종속 객체를 조롱하여 모든 종속성을 달성할 수 있기 때문입니다.

그리고 그들이 테스트를 통과한다면, 이 테스트의 단위가 정확하다는 것이 확실합니다.

고려해야 할 한 가지 중요한 사항은 모의 객체가 자신이 조롱하는 실제 객체와 동일한 인터페이스를 구현한다는 것입니다. 이렇게 하면 실제 인스턴스인 것처럼 코드에서 인터페이스 유형을 통해 이를 처리할 수 있습니다.

모의 객체를 사용하려면 Mockito 라이브러리를 가져오세요. 정적 org.mockito.Mockito.* 가져오기; 모의 객체 인스턴스를 생성하는 데 도움이 되는 mock() 메서드를 사용할 수 있습니다.

다음 단계는 모의 생성이며 구문은 List mockedList = mock(List.class);입니다. 이제 일부 값을 추가하기 위해 mockedList.add("Value one")와 같이 List의 정의된 객체를 사용하고 다음과 같이 verify() 메서드를 사용하여 확인합니다 - verify(mockedList).add("one").

// Import Library
import static org.mockito.Mockito.*;

// Create Mock
List mockedList = mock(List.class);

// using mock object
mockedList.add("one");
mockedList.clear();

// Varifying
verify(mockedList).add("one");
verify(mockedList).clear();
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn