Mock
객체는 자신에게 발생했던 작업들을 검증할 수 있도록 다양한 메서드를 제공하고 있다.
대표적으로 아래가 있다.
Mock
이 호출된 이력이 있는지를 검증할 때 쓰인다.Mock
이 단 한 번 호출되었는지 검증할 때 쓰인다.Mock
이 호출되었을 때 어떤 인지가 넘어왔는지 검증할 때 쓰인다.Mock
이 호출된 적이 없는지 검증할 때 쓰인다.예를 들어 Mock
을 한 번도 호출하지 않고 assert_called()
메서드를 호출하면 예외가 발생한다.
from unittest.mock import Mock
mock = Mock()
mock.assert_called()
하지만 Mock
객체를 한 번 호출한 후에 다시 assert_called()
메서드를 호출하면 예외가 발생하지 않는다.
mock = Mock()
mock()
mock.assert_called()
assert_called_once()
메서드는 해당 Mock
이 단 한 번 호출되었는지 검증 할 때 쓰인다.
mock = Mock()
mock()
mock.assert_called_once()
mock()
mock.assert_called_once()
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')
assert_not_called()
메서드는 지금까지와 반대로 해당 Mock
이 호출된 적이 없는지 검증한다.
mock = Mock()
mock.assert_not_called()
mock()
mock.assert_not_called()