どのようにFをABCDEFで1回だけdjangoでアサートする

私は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

3 答え

assertContains is not for test random strings. It's for testing the response from view -- specifically that the response contains a certain bit of text. If you're not using a TestClient and testing against the response from one of your views, you can't use it.

2
追加された

assertEqual をご覧ください。これは、 Djangoテストドキュメントがこのようなことをテストする方法です。このように assertEqual を使用すると、失敗した場合に assertTrue がフィードバックを返すようになります。

self.assertEqual(p.user.email.count('@'), 1)
2
追加された

Chrisが言っているように、これは assertContains の目的ではありません。標準アサーションの1つを使用することができます:

self.assertTrue(p.user.email.count('@') == 1)
1
追加された