我正在處理ASP.NET網站的遺留代碼,並且我想要重構。我如何驗證兩個ASP.NET頁面具有相同的輸出HTML?
我得出的結論是,測試中斷的最簡單方法是將最終的HTML與舊頁面進行比較,尤其是因爲無論如何都對UI有如此多的依賴性。 (請批評這是否是一種錯誤的方法)
該頁面是從查詢字符串動態創建的,因此我需要使用所有不同的組合生成測試。
如何運行此測試,理想情況下我還想將它集成到NUnit等工具中,可以這樣做嗎?
感謝
我正在處理ASP.NET網站的遺留代碼,並且我想要重構。我如何驗證兩個ASP.NET頁面具有相同的輸出HTML?
我得出的結論是,測試中斷的最簡單方法是將最終的HTML與舊頁面進行比較,尤其是因爲無論如何都對UI有如此多的依賴性。 (請批評這是否是一種錯誤的方法)
該頁面是從查詢字符串動態創建的,因此我需要使用所有不同的組合生成測試。
如何運行此測試,理想情況下我還想將它集成到NUnit等工具中,可以這樣做嗎?
感謝
有在Visual Studio中的一些選擇,如果你有測試版或旗艦版,並Selenium可能是另一種選擇。
關於測試用戶界面,你仍然在使用webforms,它總是很複雜,所以根據你的場景,有些東西很容易在代碼中測試(在用戶界面之前),其他的東西只需要查看,直到以您呈現的HTML結束。
甚至像Panel一樣添加一個容器控件將完全破壞您的邏輯,因爲這會更改爲傳統asp.net生成的ClientID。
你肯定會得到太多的誤報,其中頁面沒有真正被破壞。
此外,asp.net不呈現任何設置爲Visible
的任何錯誤。除非你的項目沒有代碼在按鈕點擊(PostBacks)上顯示,否則你不應該遵循這種方法。您會錯過隱藏部分的任何更改。
用戶接受重構,遷移後的最終頁面;最好是手動完成。
您可以自動執行數據和業務邏輯層的測試,但是使用傳統的asp.net自動執行UI測試似乎會花費太多時間並且收益甚微。
我偶然發現了一個似乎這樣做的有趣工具,稱爲Llewellyn Falco的Approval Tests。
2個問題。 1)我可以模仿回傳嗎? 2)如果我只檢查相關的HTML,即使用HTMLAgilityPack解析爲有效的XML,並只檢查具有特定ID的部分,這仍然是一個不好的方法? – happygilmore 2013-02-27 10:31:55
問題是,ID會改變。這種方法並不壞。你可能不得不爲了正確的投資而投入時間,似乎並不值得。這是主觀的,取決於您的網站的大小。 – nunespascal 2013-02-27 12:01:31