회원가입

2. 파이썬 Mock 객체 검증하기

NULL 2022-05-15

 

Mock 객체 검증하기


Mock 객체는 자신에게 발생했던 작업들을 검증할 수 있도록 다양한 메서드를 제공하고 있다.

 

대표적으로 아래가 있다.

  • assert_called(): 해당 Mock 이 호출된 이력이 있는지를 검증할 때 쓰인다.
  • assert_called_once(): 해당 Mock 이 단 한 번 호출되었는지 검증할 때 쓰인다.
  • assert_called_with(): 해당 Mock 이 호출되었을 때 어떤 인지가 넘어왔는지 검증할 때 쓰인다.
  • assert_not_called(): 해당 Mock 이 호출된 적이 없는지 검증할 때 쓰인다.

 

1. assert_called()

예를 들어 Mock 을 한 번도 호출하지 않고 assert_called() 메서드를 호출하면 예외가 발생한다.

from unittest.mock import Mock

mock = Mock()
mock.assert_called()

 

하지만 Mock 객체를 한 번 호출한 후에 다시 assert_called() 메서드를 호출하면 예외가 발생하지 않는다.

mock = Mock()
mock()
mock.assert_called()

 

2. assert_called_once()

assert_called_once() 메서드는 해당 Mock 이 단 한 번 호출되었는지 검증 할 때 쓰인다.

mock = Mock()
mock()
mock.assert_called_once()
mock()
mock.assert_called_once()

 

3. assert_called_with()

assert_called_with() 메서드를 사용하면 해당 Mock 이 호출되었을 때 어떤 인자가 넘어왔는지까지도 검증할 수 있다.

mock = Mock()
mock('A', B='C')
mock.assert_called_with()

mock = Mock()
mock('A', B='C')
mock.assert_called_with('A', B='C')

 

4. assert_not_called()

assert_not_called() 메서드는 지금까지와 반대로 해당 Mock 이 호출된 적이 없는지 검증한다.

mock = Mock()
mock.assert_not_called()
mock()
mock.assert_not_called()

 

참고 링크: https://www.daleseo.com/python-unittest-mock/

0 0
테스트
테스트를 작성해야 하는 이유는 정말 너무 많다. 개발 관점으로 다양한 테스팅에 과정에 대해 필자가 공부한 것을 토대로 포스팅한 게시판이다.
Yesterday: 1
Today: 251