我有一个非常简单的看法如下
def simple_view(request):
documents = request.user.document_set.all()
return render(request, 'simple.html', {'documents': documents})
为了在我的测试用例中测试上述视图,我有以下方法出错。
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
。我已经尝试打印两个查询集,并且两者都完全相同。为什么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