2010-06-29 74 views
0

我是TDD的新手,我正在努力學習正確的做事方式。所以我必須爲Web瀏覽器擴展創建一個JavaScript類,它將用戶的信息存儲到HTML5的localStorage(我將稱這個類爲UserInfoStorage)。但是,我想讓我的擴展程序跨瀏覽器兼容,並且與localStorage進行交互的方式在各種瀏覽器(Chrome,Firefox,Safari)中有所不同。使用TDD原則做到這一點的正確方法是什麼?

我應該創建另一個類Storage,它是針對每個瀏覽器的,並且UserInfoStorage用這個來存儲東西到localStorage?我將如何進行單元測試而不將UserInfoStorage的測試與Storage的實施結合起來?

謝謝!

回答

0

我意識到,要做到這一點,最好的辦法是創建一個測試Storage具有基本getset功能(有點像一個測試數據庫),並有UserInfoStorage使用它來存儲和檢索數據。這允許直接測試UserInfoStorage的接口,而不需要將其與Storage綁定,所以如果我改變UserInfoStorage的工作方式,測試仍然有效(因爲它們沒有測試UserInfoStorage是否正確地與Storage交互,而是UserInfoStorage的功能產生期望的結果)。

2

一般而言,您可以模擬被測試的存儲以確保UserInfoStorage正確地與其交互。這些將包含(部分)UserInfoStorage上的單元測試。然後,您將針對每個瀏覽器的每個存儲實現單獨進行單元測試,並且理想情況下還會測試代碼,以確定根據涉及的瀏覽器提供哪個存儲實施。

相關問題