0
我在我的視圖模型的初始化後續代碼:Mvvmcross單元測試的InvokeOnMainThread
public void Init(int id)
{
Task.Run(() => {
var loadedObjects = service.GetAllById(id);
InvokeOnMainThread(() => {
foreach(var objectA in loadedObjects)
{
Items.Add(objectA);
}
});
}
}
我的測試是這樣的:
[Test]
public void ShouldTest()
{
//For additional Setup of MvvmCross and registering of Dispatcher
Setup();
var viewModel = new ViewModelObjects();
viewModel.Init(1);
Assert.AreEqual(1, viewModel.Items.Count);
}
當我運行我的測試斷言後首次運行調用InvokeOnMainThread。 我的單元具有調度器(來自:https://github.com/MvvmCross/MvvmCross/wiki/Testing)
- 原因Task.Run是需要呈現GUI的其餘部分。
- InvokeOnMainThread觸發ProperyChanged
- 喜歡嘗試次數(http://www.damirscorner.com/blog/posts/20140324-HandlingPropertyChangedEventInMvvmCrossViewModelUnitTests.html)沒有工作
任何想法如何,我可以測試的項目?
然而,在等待請求之前,它會「鎖定」應用程序,然後在等待請求時將其餘部分「鎖定」 –
不,它不會'鎖定'應用程序,因爲它是'async' – VMAtm