ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Jest - jest.fn() 함수
    카테고리 없음 2023. 3. 6. 14:50

    jest.fn( )

    Mock 함수를 생성하는 함수이다. mock은 모의 라는 의미로 가짜 흉내내는 이러한 뜻이 있다. 그래서 Mock함수가 하는 일은 다위 테스트를 작성할 때, 해당 코드가 의돚하는 부분을 가짜로 대체하는 일을 해준다.

     

    단위 테스트가 독립적이여야 하는 이유

    우선 의존적인 부분을 구현하기 까다로운 경우가 있으면, 의존적인 부분의 상태에 따라서 테스트하고자 하는 부분의 테스트 결과가 영향을 받을 수 있기 때문이다.

     

    그래서 단위 테스트는 특정 기능만 분리해서 독립적으로 사용한다. jest.fn()를 이용해서 가짜 함수를 생성하므로써  의존적인 부분으로 인해 테스트 상황에서의 영향을 해결할 수 있다. jest.fn()이 생성한 가짜 함수는 이 함수에서 어떠한 일들이 발생했는지, 다른 코드들에 의해서 어떻게 호출되는지를 기억하기 때문에 해당함수가 내부적으로 어떻게 사용되는지 검증할 수 도 있다.(Spy 역할)

     

    jest.fn( )기본 사용법

     

    Mock(가짜) 함수 생성

    const mockFunction = jest.fn()

    jest.fn()을 이용해서 정의를 해준다.

     

    Mock함수도 인자를 넘기면서 호출 가능

    mockFuntion()
    mockFuntion('hello')

    mockFuntion에 'hello'라는 문자열을 인자로 넘긴다.

     

    Mock함수가 어쩌한 결과값(return)을 반환할지 알 수 있다.

    mockfunction.mockReturnValue("가짜 함수 반환")
    //mockReturnValue 메소드를 이용해서 반환 값을 정해준다.
    console.log(mockFunction)//가짜 함수 반환.

    .mockReturnValue를 이용해서 Mock함수가 반환할 값을 문자열 "가짜 함수 반환"으로 정해준다. 그런 다음 console.log()으로 해당함수를 출력하면 "가짜 함수 반환"을 출력하는 것을 확인할 수 있다.

     

    가짜 함수가 몇번 호출 되었고 어떤인자가 넘어왔는지 검증가능

    mockFunction('hello');
    mockFunction();
    
    expect(mockFunction).toBeCalledWith('hello');
    //어떤 값과 같이 호출해도 되는지.
    expect(mockFunction).toBeCalledTimes(2);
    //몇번 호출될 것인지.

     

     

    [출처 -

    https://www.inflearn.com/course/%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B0-%EB%B0%B0%EC%9A%B0%EB%8A%94-tdd/dashboard]

    댓글

Designed by Tistory.