次のように定義された Sport クラスがあります。
Sport:
- name
- other fields
スポーツ「ラグビー」の追加がsport_objectsのリストに含まれていることを確認したいテストがあります。
現在、テストは脆く、私が知っているインデックスでオブジェクトの名前をチェックしています:
self.assertEquals('rugby', sports_objects[3].name)
これを self.assertIn() に変更したいので、テストはそれほど脆弱ではなく、インデックスが変更されても影響を受けません (ここでは順序を気にしないため)。
インデックスに依存せずに(ラムダ関数を使用して)これを変更する方法はありますか?
編集:
与えられた両方の答えはうまくいきます。複数の assert ステートメントがあるため、最終的な解決策は次のとおりです。
sports_names = [i.name for i in sports_objects]
self.assertIn('rugby', sports_names)
self.assertIn('baseball', sports_names)