簡體   English   中英

編碼的UI測試:創建多個單獨的UIMap類而不僅僅是多個部分UIMap類的原因是什么?

[英]Coded UI testing: What is the reasoning behind creating multiple individual UIMap classes instead of just multiple partial UIMap classes?

我正在開發一個包含“半大”應用程序GUI的項目。 我想要執行編碼UI測試的大約4-5個單獨(復雜)頁面,我得到的印象是創建多個UIMap是要走的路! 來源: UIMap容器使用多個UIMaps更多來源和列表可以繼續......

我的問題/想法:使用多個UIMaps是“不錯的”,因為它:

  1. 允許更分類的代碼結構
  2. 允許開發人員更容易合作
  3. 使代碼不那么令人生畏。

但是為什么沒有人只是將UIMap切成多個分段? 難道它還沒有同樣的優勢嗎? 更進一步:在部分類中使用UIMap將阻止開發人員(我)向代碼添加復雜性,如UIMap容器

這個問題並不是特定於CodedUI。 使用部分類來模擬關注點分離並不是正確的方法。

他們可能使編寫類更容易,但他們不創造關注的適當分離,(這是階級的存在背后的根本原因),因此使用類更容易不作,因為從外部來看是沒有區別的在一個代碼與一個或多個文件中編寫的代碼之間。

舉一個簡單的例子,你將有自動完成返回所有部分文件的所有成員的平面列表,沒有區別。

當一個類是部分生成代碼部分非生成代碼,或者用不同語言編寫時(例如,對於SL / WPF使用xaml和C#),使用部分。 不同的位可能涵蓋相同行為的部分,因此(從SoC的角度來看)將它們分組在同一個類下是有意義的,但從代碼管理的角度來看,這兩個部分需要分開。 這就是CodedUI使用partials(生成* .Designer.cs文件,而* .cs文件不生成)的原因。

如果您覺得需要創建部分以分離關注點,那么您應該退后一步並使用適當的SoC(即創建不同的類)。

在您正在公開的特定情況下,我會考慮為應用程序UI的不同部分創建UIMap(無論您是將UI的行為分成不同的窗口,還是窗口的各個部分等等 - 取決於它的復雜性)。

使用多個UI地圖而不是一個大地圖有幾個原因。 他們之中有一些是:

  • UI地圖很難清理。 隨着測試套件的發展,UI Map獲得越來越多的舊的和未使用的項目。 實際上不支持安全地移除不需要的碎片。

  • 擁有許多UI映射意味着不同的測試開發人員可以同時提高工作效率,而不會在主UI Map中生成沖突項。 雖然“.uimap”文件是一個簡單的文本文件,但它包含XML。 以與配置管理系統相同的方式成功合並這些文件將介於非常困難和不可能之間。

  • 每個測試具有多個UI映射,意味着當不再需要測試時,可以丟棄其UI映射。 對該測試的所有支持都被徹底丟棄。

  • 擁有許多UI地圖,每頁一個應用程序意味着拋棄UI地圖並為頁面創建新地圖相對便宜。

  • 大UI地圖占用大量內存和CPU時間。 有趣地使用大UI圖可以使測試套件非常慢(我沒有真正的證據)。 大型UI地圖具有大量成員和嵌套類。 很容易想象,管理這樣一個類所需的運行時數據很大,並且占用大量內存和CPU周期。

  • 擁有許多UI地圖而不是一個大地圖意味着可以在不向主項目地圖添加大量不必要項目的情況下進行實驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM