Replies: 1 comment
-
이것과 별개로, 유닛테스트에서 순서의 비결정성에 의해 테스트 결과가 불확실해지는 경우 무조건 순서를 무시하는 assertion으로 대체할 것이 아니라 테스트 결과를 결정적으로 만드는 것에 대한 검토가 반드시 선행되어야 한다고 생각합니다. 특히, SUT의 스펙이 순서를 의미있게 생각할 때는 무조건 assertion이 아닌 arrange나 action이 수정되는 것이 맞다고 생각합니다. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
mock의 어서션 함수를 사용할 수 있습니다.
[장점]
[단점]
[제안]
저희가
pytest
를 도입하면서 assert statement 사용을 권장하고 있기는 하지만다른 assertion 함수/메서드를 assert statement로 대체하기 쉬운경우로만 이것을 한정하고, 그렇지 않을 때에는
다른 assertion 함수/메서드를 사용하는 것도 좋을 것 같습니다.
예:
pytest.raises
unittest.mock.Mock.assert_has_calls
고려되었던 다른 방법들
set 활용하기
mock.call
은 unhashable합니다.mock.call.args
와mock.call.kwargs
를 사용하면 일단 해결되지만, 역시 인자가 unhashable할 때에는 재귀적인 freeze hash가 필요해집니다.정렬하여 검사하기
for문을 돌며 소유 검사하기
for문을 돌며 원소 마크하기
Beta Was this translation helpful? Give feedback.
All reactions