微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何获得上下文来测试我的视图页面?

如何解决我如何获得上下文来测试我的视图页面?

我正在尝试测试搜索结果,以在没有结果时检查响应。

这是我认为的功能

def get_context_data(self,*args,**kwargs):
         result = super().get_context_data(**kwargs)
         query = self.request.GET.get('q')
         result['book'] = get_object_or_404(books,ISBN = query)
         return result

这是我的测试类和功能

class Test_Search_results_view(TestCase):
    def test_no_results(self):
        response1 = self.client.get('/TextSearch/results1/?books=new&q=9780815345244')
        response2 = self.client.get('/TextSearch/results2/?books=new&author=Bruce+Alberts&Book+Name=Molecular+Biology+of+the+Cell&edition=6')
        self.assertEqual(response1.status_code,404)
        self.assertEqual(response2.status_code,404)
        self.assertQuerysetEqual(response2.context['book'],[])

但我一直收到此错误

self.assertQuerysetEqual(response2.context['book'],[])
  File "C:----\context.py",line 83,in __getitem__
    raise KeyError(key)
KeyError: 'book'

如何检查我的图书查询是否有空结果?

解决方法

如果以下行:result['book'] = get_object_or_404(books,ISBN = query)引起404升高,那么result['book']中将什么也没有。因为404是和引发的异常。 get_object_or_404不会返回您可以在测试中断言的空值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。