Class SomeTestCase(TestCase):
# ...
def test_simple_view(self):
# ... some other checks
docset = self.resonse.context['documents']
self.assertTrue(self.user.document_set.all() == docset) # This line raises an error
# ...
오류는 AssertionError: False is not true
입니다. querysets 인쇄를 시도했으며 두 가지 모두 절대적으로 동일합니다. 두 개체가 모두 동일한 경우 False
을 반환하는 이유는 무엇입니까? 어떤 아이디어?
: 그들은 같은 값을 경우에도 다른 쿼리의 결과 인 경우
ds1, ds2 = self.response.context['documents'], self.user.document_set.all()
self.assertTrue(len([x for x in ds1 if x in ds2]) == len(ds1) == len(ds2)) # Makes sure each entry in ds1 exists in ds2
예. 방금 해결책을 찾았습니다. 감사. – Amyth
또는 좀 더 간결하게 self.assertEqual (list (ds1), list (ds2)) – igniteflow