我使用黃瓜普及的Given/When/Then風格編寫了一些C#集成測試。我正在使用一個基本上和NBehave一樣的框架。集成測試時設置系統狀態的最佳實踐/思路?
我面臨的經常性問題是設置和連接集成測試所需的所有應用程序狀態的問題。我的大多數測試是這個樣子:
Given an empty system And a new NetworkServer And a new ServerDatabase And a new Eventlogger And a new Networkconnection And a new LoggingClient When the client logs a new event Then it should appear in the server database
正如你所看到的行動,並斷言是單線條的,但我有6線「佈線」的。幾乎每個測試我都重複了這6條線。
這對我來說似乎是一種代碼味道,但我不確定如何處理這個問題。我可以將6行重構成一個(Given "a valid system..."
或其他),但是這看起來太過分了,我會隱藏太多的信息。
我很感謝來自其他領域的更多經驗的任何想法。非常感謝。
槽糕...感謝您的輸入。我必須承認我不喜歡基類模型,因爲它意味着一半的設置代碼隱藏在基礎構造函數中的完全不同的文件中......儘管如此,仍然看到不同的觀點。 +1 – 2009-06-08 21:23:43