chatGPT한테 Mockito개념 물어보기

김명후·2023년 1월 10일

chatGPT는 짱이다.

첫번째 질문.

Q. Mockito가 뭔지, Mockito로 테스트 코드를 작성하는 법을 알려주실 수 있나요?

A.
Mockito는 자바의 모킹 프레임워크입니다. 모키토는 외부 객체나 메소드를 사용해서 짠 코드가 잘 작동하는지 크게 고민할 필요없이 내가 작성한 코드를 테스트할 수 있도록 해줍니다.

Mockito를 외부 객체나 메소드를 mock하는데 사용할 수 있고, 내가 짠 코드가 예상한 대로 행동을 하도록 명시할 수 있습니다. 그렇게 하여 내가 짠 테스트 코드가 내가 의도했던 대도 잘 작동하는지에만 집중할 수 있게 해줍니다.

이것은 Mockito를 사용하여 짠 테스트 코드입니다.

// 첫번째, 모키토 라이브러리를 임포트합니다.
import org.mockito.Mockito;

// 두번째, 내가 테스트 하고자하는 클래스를 위해 목객체를 생성합니다.
MyClass myClass = Mockito.mock(MyClass.class);

// 그 다음, 목객체의 메서드가 수행해야하는 행동을 명시할 수 있습니다.
Mockito.when(myClass.someMethod()).thenReturn("some value");

// 그 뒤, 테스트코드에서 목객체를 사용합니다. 진짜 객체처럼요.
String result = myClass.someMethod();

// 마지막으로 목객체가 올바르게 잘 사용됐는지를 입증합니다.
Mockito.verify(myClass).someMethod();

이것이 도움이 되셨길 바랍니다. 추가적인 질문이 있으시다면 언제든지 알려주세요.

두번째 질문

Q. 간단한 예제를 가지고 Mockito 메소드를 설명해줄 수 있나요?
A. 그럼요! 여기 Mockitowhenverify를 어떻게 사용하는지 보여주는 간단한 예시입니다.

import org.mockito.Mockito;

public class MyTest {
 
  // 테스트하고자 하는 클래스의 목객체를 생성합니다.
  MyClass myClass = Mockito.mock(MyClass.class);

  @Test
  public void testSomeMethod() {
    
    // 목객체의 메서드가 해야하는 행동들을 설정합니다.
    Mockito.when(myClass.someMethod()).thenReturn("some value");

    // 테스트하고자 하는 메서드를 호출합니다.
    String result = myClass.someMethod();

    // 목객체의 메서드가 호출됐음을 입증합니다.
    Mockito.verify(myClass).someMethod();

    // 정확한 값이 반환됐는지를 입증하기 위해서 또한 assertEquals 메서드를 사용할 수 있습니다.
    assertEquals("some value", result);
  }
}

0개의 댓글