반응형
솔직히 말해서 저는 항상 assertDictEqual
을 사용했습니다. 왜냐하면 그것을 사용하지 않았을 때 정보를 얻었 기 때문에 동일한 딕셔너리가 같지 않기 때문입니다.
하지만 ... dicts는 ==
연산자로 비교할 수 있다는 것을 알고 있습니다.
>>> {'a':1, 'b':2, 'c': [1,2]} == {'b':2, 'a':1, 'c': [1,2]}
True
실제로 assertDictEqual
이 필요한 곳은 어디입니까?
해결 방법
기본적으로 unittest
가 테스트가 실패한 이유 에 대한 자세한 정보를 제공 할 수 있습니다. 다음 두 테스트를 비교하십시오.
class DemoTest(unittest.TestCase):
D1 = {'a': 1, 'b': 2, 'c': [1, 2]}
D2 = {'a': 1, 'b': 2, 'c': [1]}
def test_not_so_useful(self):
assert self.D1 == self.D2
def test_useful(self):
self.assertDictEqual(self.D1, self.D2)
그리고 그 결과 :
Failure
Traceback (most recent call last):
File "...x.py", line 86, in test_not_so_useful
assert self.D1 == self.D2
AssertionError
대
Failure
Traceback (most recent call last):
File "...x.py", line 80, in test_useful
self.assertDictEqual(self.D1, self.D2)
AssertionError: {'a': 1, 'c': [1, 2], 'b': 2} != {'a': 1, 'c': [1], 'b': 2}
- {'a': 1, 'b': 2, 'c': [1, 2]}
? ---
+ {'a': 1, 'b': 2, 'c': [1]}
... 일반적으로 이러한 메서드를 직접 호출 할 필요는 없습니다.
참조 페이지 https://stackoverflow.com/questions/34414326
반응형
'파이썬' 카테고리의 다른 글
파이썬 Does Python have a string 'contains' substring method? (0) | 2020.11.12 |
---|---|
파이썬 IPython Notebook cell multiple outputs (0) | 2020.11.12 |
파이썬 추세, 계절 및 잔여 시계열 요소 분해 (0) | 2020.11.11 |
파이썬 DataFrame object has no attribute 'sort_values' (0) | 2020.11.11 |
파이썬 응답의 개체가 구독 가능한 Python http 게시 요청이 아닙니다. (0) | 2020.11.11 |
댓글