Bas*_*nda 5 python testing django
我学习了一些Django的测试代码,我觉得assertIn和assertContains很相似,我读的文档,其中他们没有说任何事情assertIn或者我找不到它。
下面的这个例子检查 'john' 是否出现在 self.email.body
self.assertIn('john', self.email.body)
Run Code Online (Sandbox Code Playgroud)
类似地,此示例检查是否csrfmiddlewaretoken出现在self.response
self.assertContains(self.response, 'csrfmiddlewaretoken')
Run Code Online (Sandbox Code Playgroud)
看起来语法不同,但功能相同。因此,有什么区别?
如果您能通过一些基本示例帮助我理解这一点,我将不胜感激。
非常感谢
Naf*_*war 10
assertIn实际上是 python 内置测试套件的成员。这是对会员的正常测试。例如,您可以检查数组元素的成员资格。字典中的键等。基本上你可以将它用于所有in操作符可以使用的地方。
django 在其测试套件中添加了assertContains。它专门用于响应。这意味着您可以将视图返回的响应对象传递给它。它将评估它并检查成员资格。
您可以在相应的文档中阅读有关assertIn和assertContains的信息。
Django 测试继承自unittestPython。
assertContains是特定于Django的,并允许您评估超越了简单的额外的东西assertIn:
SimpleTestCase.assertContains(response, text, count=None, status_code=200, msg_prefix='', html=False)[源代码]
断言 Response 实例产生了给定的 status_code 并且该文本出现在响应的内容中。如果提供了 count ,则文本必须在响应中准确出现 count 次。
虽然assertIn 做简单的评估:
断言(第一,第二,味精=无)
assertIn(a, b) 检查
a in b
| 归档时间: |
|
| 查看次数: |
5504 次 |
| 最近记录: |