0
のためのユニットテスト:Mvvmcross私はのviewmodelの私のinitでフォローコード持って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はdidntの仕事(http://www.damirscorner.com/blog/posts/20140324-HandlingPropertyChangedEventInMvvmCrossViewModelUnitTests.html)のようなProperyChanged
- トライ
私はアイテムをテストすることができますどのように任意のアイデアをトリガ?
あなたは正しいですが、要求を待っている間に残りの部分をレンダリングする前にアプリケーションを「ロック」します。 –
いいえ、アプリケーションを「ロック」しません。 – VMAtm