1
我有一個模擬對象爲下面的類使用部分
class Book(object):
def __init__(self):
self._counter = 1
@property
def counter(self):
_, self._counter = self._counter, self._counter + 1
return _
類Book
Python測試屬性具有以下模擬對象
book = Mock(spec = Book, self._counter = 1)
如果計數器不我可以寫測試作爲這樣的屬性
def test_counter(self):
book.counter = partial(Book.counter, book)
self.assertNotEquals(book.counter(), book.counter())
但是,由於它是一個屬性,上述策略將不起作用,你可以建議因爲我必須爲Book類使用Mock對象,所以我爲此編寫了測試屬性的好方法。
你能解釋一下你的答案。 –
實際上'@ property'裝飾器返回一個屬性對象,它具有一個fget函數來實際運行應用裝飾器的底層函數 – Ankur