簡體   English   中英

CUIT(編碼的UI測試)+ MVVM - 我現在必須開始命名我的所有控件嗎?

[英]CUIT (Coded UI Tests) + MVVM — Do I have to start naming all my controls now?

基本上,對於MVVM,我有很多未命名的控件,因為不再需要為控件提供Name(或x:Name)。

但是,在查看編碼的UI測試時,似乎我可能需要再次命名所有控件? 或者我只是誤解了我讀到的內容並且有一種MVVM友好的方式來做CUIT?

如果要使用記錄的測試與控件可靠地交互,則需要為控件提供名稱或ID。 沒有名稱,您的測試將依賴於實例屬性,您注意到該屬性取決於未命名控件相對於其他未命名控件的位置。

如果您的應用程序非常靜態,您可能會因沒有名稱而逃脫,但移動控件可能會導致破損。 您還將遇到動態加載的控件的問題,因為它們可能導致實例值發生更改,並且您記錄的操作可能發生在錯誤的控件上。

不要誤會我的意思,你可以為沒有控制名稱的應用程序編寫CodedUI測試,這只會是一個主要的痛點,錄音將是不可靠的。

您可以從System.Windows.Automation.AutomationProperties命名空間添加自動化ID,而不必更改控件的ID。 我建議超過期望元素保持與上面stoj相同的順序,這將是非常痛苦的。

查看我在[使用自動化ID]上找到的帖子。 1以下是他的帖子中的例子:

<MyControl AutomationProperties.AutomationId="AnUniqueValue"/>
protected override string GetAutomationIdCore() 
{ 
    return (AutomationProperties.GetAutomationId(_owner));
}

好吧,顯然有未命名的控件使得很難進行不破壞Coded UI測試的更改。 生成的代碼根據它們在XAML中編寫的順序分配可編輯的文本框,這意味着如果我移動控件,則會破壞我的編碼UI測試。

我沒有完全探索搜索標准,但我認為使用未命名的控件創建編碼UI測試要復雜得多。 好吧,我猜Name / x:名字將會卷土重來。

暫無
暫無

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

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