Django提供了一个断言函数
我有一个测试,其中视图使用HttpRepsonseRedirect((重定向。在我的测试中,我将dict传递给POST请求,该请求通过HttpResponseRedirect。
data = {...data...}
response = self.client.post(url, data)
如何检查字符串是否在响应HTML中?我做不到:
self.assertContains(response, 'my_string')
或
self.assertIn(response, 'my_string')
有没有一种方法可以从这个响应中以字符串的形式访问HTML?
TestCase.assertInHtml(needle, haystack)
,您可以使用它来断言给定的needle
(您的HTML字符串(在haystack
(来自响应对象的HTML(中。注意,HttpResponse
的HTML内容是在响应对象的content
属性中作为字节字符串提供的,因此您需要像这样解码:
self.assertInHtml('my_string', response.content.decode())
您可以将参数follow=True
传递给测试客户端,使其遵循重定向。然后您可以使用assertContains
来检查期望的内容。
data = {...data...}
response = self.client.post(url, data, follow=True)
self.assertContains(response, 'my_string')