是否有一種合適的方式來使用aspx視圖引擎來測試視圖?單元測試aspx視圖
我一直在玩,讓我得到一個解析的字符串作爲像結果不同的方式:
view.RenderView(viewContext);
但我並沒有到目前爲止任何運氣。
我讀過的大部分內容都集成到了集成測試領域。集成測試重疊了一點兒,但不允許我使用虛擬數據來檢查輸出,這是我試圖通過單元測試視圖實現的主要事情。
是否有一種合適的方式來使用aspx視圖引擎來測試視圖?單元測試aspx視圖
我一直在玩,讓我得到一個解析的字符串作爲像結果不同的方式:
view.RenderView(viewContext);
但我並沒有到目前爲止任何運氣。
我讀過的大部分內容都集成到了集成測試領域。集成測試重疊了一點兒,但不允許我使用虛擬數據來檢查輸出,這是我試圖通過單元測試視圖實現的主要事情。
我的建議是不打擾。堅持測試模型和控制器。檢查特定的HTML只會導致一個脆弱的測試基地,這將打破你對佈局稍作修改的時刻。
我所做的是創建對象以「驅動」用戶界面並將它們全部放入「BusinessObjects」dll中。當需要創建接口時,接口本質上會從這些對象中抽取結果。然後我使用標準的NUnit單元測試對商業對象進行單元測試。我擔心你的問題可能對MVC框架更具體一些,但我希望這給你一些思考。
你簽出Selenium嗎?它針對Web UI測試,並在Hunt和Thomas的Pragmatic Unit Testing in C# with NUnit中進行了討論。它使用NUnit,儘管它的測試方式實際上比單元測試更像是系統測試(僅僅因爲您必須啓動Web應用程序並導航到您的頁面才能測試它)。對不起,在我早些時候的回答中我沒有走這條路,但昨天早上我有些匆忙!
還有NUnitAsp,但該項目已基本放棄。它的工作原理在當天廣受讚譽,但我不願意推薦任何不再積極發展的產品。
我們已經這樣做了,這是MVC的最大好處。但是,視圖仍然可能很複雜並且包含錯誤,我們希望儘可能進行測試。 – flukus 2009-01-07 01:49:09