プロパティとセッターが実際にname属性を設定するために呼び出されているかどうかをユニットテストで確認する方法があります。Pythonユニットのテストクラスのプロパティ
このような何かをしようとするとclass DummyName:
def __init__(self):
self.name = ''
@property
def name(self):
return self.name
@name.setter
def name(self, name):
if not isinstance(name, basestring):
raise Exception('Name must be a string.')
self.name = name
...
@mock.patch.object(DummyName, 'name', new_callable=PropertyMock)
def testNameProperty(self, mock_name):
MockName = Mock()
mock_name.return_value = MockName
dummyName = DummyName()
dummyName.name = 'test_name'
# assert setter is called to set the name
# assert name is called to get the name
# assert name is 'test_name'
は(名前のように思える)とセッターがアクセスされることはありません。誰もが良いアイデアを持っていますか?ありがとう!
'dummyName.name = 'test_name''はセッターフィールドをオーバーライドします。異なるメソッド/変数/ etcに異なる名前を使用 – EsotericVoid