假設我們有一個類UserService
,屬性爲current_user
。假設它在AppService
類中使用。TDD在Python中被破解了嗎?
我們有AppService
覆蓋測試。在測試設置中,我們存根出current_user
一些模擬值:
UserService.current_user = 'TestUser'
假設我們決定重新命名current_user
到active_user
。我們將其重命名爲UserService
,但忘記更改其在AppService
中的使用。
我們運行測試,他們通過!測試設置會添加屬性current_user
,該屬性在AppService
中仍然(錯誤但成功)使用。
現在我們的測試是無用的。他們通過但應用程序將在生產失敗。
我們不能依賴我們的測試套件==> TDD是不可能的。
TDD在Python中被破解了嗎?
您無法在Python中使用TDD!= Python中的TDD已損壞。 – Pierreten 2010-04-30 00:23:33
這是你設置被破壞的模擬值的方式,你應該使用普通的UserService構造函數來設置current_user(或者真實應用中的任何變化),而不是使用這個快捷方式。 – 2010-04-30 00:33:33
@Pierreten,更好地告訴我我做錯了什麼 – 2010-04-30 00:37:12