3

組み込みのテスト ツールを使用して Django アプリのテストを作成しています。現在、ユーザーのフォロワーのリストを表示するページのテストを作成しようとしています。ユーザーにフォロワーがいない場合、ページには文字列のリストからランダムに選択されたメッセージが表示されます。例として:

NO_FOLLOWERS_MESSAGES = [
    "You don't have any followers.", 
    "Sargent Dan, you ain't got no followers!"
]

そこで、応答にこれらの文字列のいずれかが含まれていることをアサートするテストを書きたいと思います。文字列を 1 つしか使用していない場合はそのまま使用できますself.assertContains(request, "You don't have any followers.")が、複数の結果が考えられるテストを作成する方法に行き詰まっています。どんな助けでも大歓迎です。

4

3 に答える 3

3

これを試して:

if not any([x in response.content for x in NO_FOLLOWERS_MESSAGES]):
        raise AssertionError("Did not match any of the messages in the request")

についてany(): https://docs.python.org/2/library/functions.html#any

于 2015-07-19T20:54:50.653 に答える
2

このようなものは機能しますか?

found_quip = [quip in response.content for quip in NO_FOLLOWERS_MESSAGES]
self.assertTrue(any(found_quip))
于 2015-07-19T20:54:29.660 に答える