Ich versuche derzeit, Komponententests für eine Android/IOS-Anwendung zu schreiben, die in xamaring mit mvvmcross geschrieben wurden. Ich habe die Anweisungen in den wiki gefolgt und sie funktionieren gut auf den Punkt, wenn ein Dienst das Ansichtsmodell auf diese Weise zu ändern versucht:Mvx.Resolve schlägt in Komponententests fehl
var viewDispatcher = Mvx.Resolve<IMvxViewDispatcher>();
viewDispatcher?.ShowViewModel(
new MvxViewModelRequest(typeof(HomeViewModel), null, null, MvxRequestedBy.Unknown));
Die Tests scheitern in der ersten Zeile mit Mvx.Resolve();
. Ich nehme an, dies ist bis auf die Schnittstellen in den Mock-IoC-Containern registriert:
this.mockDispatcher = new MockDispatcher();
this.Ioc.RegisterSingleton<IMvxViewDispatcher>(this.mockDispatcher);
this.Ioc.RegisterSingleton<IMvxMainThreadDispatcher(this.mockDispatcher);
so MVX nicht dann, wenn auf diese Weise aufgerufen auflösen kann. Kann dieser Code getestet werden oder gibt es eine andere Möglichkeit, das ViewModel vom Dienst zu ändern?
Toten Link, wahrscheinlich äquivalent: https://www.mvvmcross.com/documentation/testing/testing/testing.html – hlovdal