2016-10-03 8 views
0

データをクラス属性に設定するメソッドがあります。Python - unittests:実際に同じオブジェクトの場合は、代わりにその属性を使っていくつかのオブジェクトを比較しますか?

だから私は実行しましょう:

self._set_data(some_data) 
print self._data 

それは私にこの情報を出力します。

{'c2': { 
    'column': 1, 
    'style': <xlwt.Style.XFStyle object at 0x7f4668a18dd0>, 
    'value': u'Argentina', 'row': 2}, 
'c1': { 
    'column': 0, 
    'style': <xlwt.Style.XFStyle object at 0x7f4668a18dd0>, 
    'value': 'C is not Python', 'row': 0}} 

のでstyleを除くすべてのキーは、単純なデータを持っているので、実行しているときに何が期待されているかチェックし問題がありませんunittests。しかし、私がstyleキーで見る問題は、xlwtモジュールのスタイルオブジェクトをインスタンス化して返します。今では同じ値を使って "同じ"スタイルを作成して__init__にしても、unittestはオブジェクトを比較するために失敗するため、別のオブジェクトになります。 Pythonの標準ユニットテストスイートにはそんなものがありますか?それとも、unittestsスイートを拡張する必要があるので、その特定のオブジェクトを何とかどういう形に比較するのでしょうか?

答えて

0

あなたのテストでは、期待値で初期化されたモックスタイルオブジェクトを作成し、それを__dict__属性とテストされたスタイルオブジェクトの__dict__属性と比較することができます。

if mock_style.__dict__ == tested_style.__dict__ : 
    print('The styles are set correctly.') 
関連する問題