2011-07-04 16 views
4

我已經開始使用SpecFlow來嘗試爲我的ASP.NET MVC Web應用程序編寫規範。我遇到了兩個基本問題,我在Google中沒有找到任何答案。具有Specflow和模擬瀏覽器行爲的BDD

  1. 有沒有一種方法可以模仿瀏覽器行爲而不必創建實際的瀏覽器實例。我知道有諸如「WatiN」這樣的庫可以創建實際的瀏覽器實例,我不願意使用它,因爲它可能會顯着降低測試性能(我需要在構建服務器中運行它們)

  2. 原因爲什麼我需要依賴瀏覽器或模擬瀏覽器,因爲我不希望直接在控制器上進行測試,因爲它不能保證我直接實例化控制器時觸發所有操作過濾器(因爲它是asp.net mvc引擎)。有人可以建議我採用一種方法來測試我的控制器 - 所有的操作過濾器都已啓動(這樣我可能不想使用瀏覽器/模擬瀏覽器)?

感謝

大黃蜂

回答

6

如果你想測試你的HTTP管道,你需要像華廷,或者您必須手動執行HTTP請求=每次測試必須手動趕上請求,並創建在您的測試中與WebClientHttpWebRequest相同。我會使用WatiN,因爲它會進行真正的端到端測試。

在構建服務器上運行的測試必須快速也是不正確的 - 我們有幾組測試,其中一些測試運行幾個小時。

1

我會查看Mara項目(https://github.com/remi/Mara),它是.net的一個Capybara(一個紅寶石工具)克隆。

Mara不僅讓您更容易編寫測試,而且還可以選擇和選擇如何運行測試;與硒,WatIn或無頭,甚至使用上面提到的WebClient。在大多數情況下,它只是配置。