我正在研究一些Django测试代码,发现assertIn
和assertContains
非常相似,我读了documentation,其中他们没有对assertIn
说什么,也许我找不到
下面的示例检查self.email.body
的内容中是否出现'john'
self.assertIn('john', self.email.body)
与此示例类似,该示例检查csrfmiddlewaretoken
的内容中是否出现self.response
self.assertContains(self.response, 'csrfmiddlewaretoken')
看起来那里的语法是不同的,但是那里的功能是相同的。因此,有什么区别?
如果您能通过一些基本示例帮助我理解这一点,我将不胜感激。
非常感谢您
答案 0 :(得分:2)
Django测试继承自Python中的unittest
。
assertContains
是specific to Django,可让您评估除简单的assertIn
之外的其他内容:
SimpleTestCase.assertContains(响应,文本,计数=无,status_code = 200,msg_prefix ='',html = False)[源代码]
断言一个Response实例产生了给定的status_code,并且该文本出现在响应的内容中。如果提供了计数,则文本必须在响应中准确地计数。
assertIn
does simple evaluation时:
assertIn(first,second,msg = None)
assertIn(a,b)检查
a in b
答案 1 :(得分:1)
assertIn 实际上是python内置测试服的成员。这是对成员资格的正常测试。例如,您可以检查数组元素的成员资格。字典等中的键。基本上,public static void DetectCops()
{
Entity []vehicles;
Entity []officers;
vehicles = World.GetEntities(Game.LocalPlayer.Character.Position, 50f, GetEntitiesFlags.ConsiderGroundVehicles);
if (vehicles.Any(entity => entity.Model == "POLICE")
{
}
}
运算符可以使用的所有键都可以使用它。
assertContains 。它专门用于响应。这意味着您可以传递视图返回的响应对象。它将对其进行评估,然后检查其成员身份。
您可以在相关文档中阅读有关assertIn和assertContains的信息。