この質問はかなり前から開かれており、もう回答が必要かどうかはわかりませんが、昨日別のことを検索しているときに見つけたので、今は自由な時間があります...
私は専門家ではなく、実際には特定のニーズに応えないかもしれませんが、モックライブラリが必要なようです。Michael Foord のMockはお気に入りの 1 つです。
次のように、デコレータまたはコンテキスト マネージャとして使用mock.patch
して、テストしようとしている属性をモックすることができます。
def test_attribute_is_being_set_to_none():
mocked_attribute = mock.PropertyMock()
with mock.patch('MyModule.MyClass.attribute_to_mock', mocked_attribute)
MyObject = MyClass()
MyObject.method()
p.assert_called_with(None)
これは、テストNone
中に属性が設定されたかどうかをテストすることになっています。より厳格にassert_called_once_with(None)
したい場合は、オブジェクトがメソッド中に一度だけ設定されたかどうかを確認するために使用できます。
デコレーターやコンテキストマネージャーを使用して、属性、名前空間をモックすることでいくつかの問題に遭遇するかもしれません...それは多くのことに依存しますが、私はモックがここに行く方法であると確信しています.