7

pytest で assert を実行するときに dict の要素を無視する方法があるかどうか疑問に思っていました。last_modified_date を含むリストを比較する assert があります。日付は常に更新されるため、日付が最初に入力された日付と同じであることを確認する方法はありません。

例えば:

{'userName':'bob','lastModified':'2012-01-01'}

ありがとうジェイ

4

3 に答える 3

13

すべてに等しいオブジェクトを作成することで、この問題を解決しました。

class EverythingEquals:
    def __eq__(self, other):
        return True

everything_equals = EverythingEquals()

def test_compare_dicts():
    assert {'userName':'bob','lastModified':'2012-01-01'} == {'userName': 'bob', 'lastModified': everything_equals}

このようにして、同じものとして比較され、辞書にあることも確認さ'lastModified'れます。

于 2016-06-07T13:18:58.403 に答える