我怎么断言F在ABCDEF中只出现一次?
我使用了assertEqual但django声明:
Traceback (most recent call last):
File "/Users/jorrit/virtualenvs/voetbabbel/voetbabbel/apps/mass_mailer/tests.py", line 61, in test_create_mailing_list
self.assertContains(p.user.email,"@", 1, status_code=200)
File "/Library/Python/2.7/site-packages/django/test/testcases.py", line 419, in assertContains
self.assertEqual(response.status_code, status_code,
AttributeError: 'unicode' object has no attribute 'status_code'
和我在测试中的代码:
self.assertContains(p.user.email,"@", 1)
答案 0 :(得分:2)
assertContains
不适用于测试随机字符串。它用于测试视图中的响应 - 特别是响应包含一些文本。如果您没有使用TestClient并针对其中一个视图的响应进行测试,则无法使用它。
答案 1 :(得分:2)
结帐assertEqual
。这就是Django testing docs测试这种事情的方法。以这种方式使用assertEqual
可以为您提供assertTrue
失败时的更多反馈。
self.assertEqual(p.user.email.count('@'), 1)
答案 2 :(得分:1)
正如克里斯所说,这不是assertContains
所针对的。您可以使用标准断言之一:
self.assertTrue(p.user.email.count('@') == 1)