3
我使用Xamarin.UITest框架來斷言,如果某些按鈕被禁用或啓用。 不幸的是,這似乎不起作用如果按鈕的「啓用」屬性是設置通過綁定槽MVX(綁定正在工作 - 按鈕是真正禁用)。使用Xamarin.UITest與MvvmCross綁定
例axml有兩個按鈕:
<xxx.Widgets.Button
android:id="@+id/btnSave"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="Save"
style="@style/DefaultButton"
local:MvxBind="Click SaveAndContinueCommand; Enabled SaveButtonActive" />
<xxx.Widgets.Button
android:id="@+id/btnTest"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="Test"
style="@style/DefaultButton"
android:enabled="false" />
查詢與Xamarin.UITest:
var button = App.Query(v => v.Button("Save")).FirstOrDefault();
Assert.IsFalse(button.Enabled); // -> Button is always enabled
var testButton = App.Query(v => v.Button("Test")).FirstOrDefault();
Assert.IsFalse(button.Enabled); // -> Button is disabled. Correct!
我需要注意的東西有什麼不同? 有沒有人使用過MVX和Xamarin.UITest的組合?
日本我可以在點擊按鈕後檢查屏幕。 但Xamarin公開了諸如視圖元素的「isEnabled」屬性 - 顯然這不適用於綁定屬性(我需要檢查它與有界文本道具)。 提供的REPL shell只知道「樹」命令,該命令返回屏幕上的所有視圖元素,但沒有它們的屬性。通過c#代碼查詢所有元素會返回我提到的狀態 - isEnabled Prop是錯誤的。 有沒有一種方法可以通過將AppQuery結果轉換爲Android按鈕或使用內置方法來直接讀取特定屬性? – 2015-03-16 08:06:46
如果以編程方式將按鈕的IsEnabled屬性更改爲true後會發生什麼情況,它會在屏幕上顯示爲false?我很好奇它是否仍然在Xamarin UI測試中返回false屬性......我很難相信這是一個MvvmCross數據綁定問題,並認爲這只是一個問題,也許Xamarin UI測試始終返回原始創建按鈕上的狀態? – PkL728 2015-03-16 11:32:20
這種情況下工作。我添加了一個修改按鈕的啓用屬性的事件 - Xamarin UI Test提供了正確的屬性值。也許我可以用測試綁定來測試這種行爲。它真的很奇怪 – 2015-03-18 09:34:32