Ich versuche, eine Testsuite für a einzurichtenKürzlich geschriebene WPF / C # -App. Ich habe keine Art von MVVM-Muster verwendet, was das automatisierte Testen erheblich erschwert, aber dies ist der aktuelle Stand der Dinge, und mein Chef wird mir keine zusätzliche Zeit für ein Umschreiben geben. Also versuche ich, das Beste aus der Situation zu machen.
In meinem Testprojekt rufe ich die MainWindow()
ctor. Ich starte die DoWork
Methode von a BackgroundWorker
kurz vor seiner Erstellung, um Tastendrücke über ein. senden zu können (Action)delegate
durch das fenster "s Dispatcher
. Allerdings wenn ich anrufe bgWorker.RunWorkerAsync()
bevor Sie die anrufen MainWindow
ctor, der ctor wird nicht ausgeführt (ich setze darin Haltepunkte und nada). Wenn ich den Anruf zu entfernen RunWorkerAsync
dann funktioniert der ctor richtig. Was vermisse ich hier?
Antworten:
0 für die Antwort № 1Unten sehen Sie die Implementierung von BackgroundWorker.
IsVMBusy = true;
var worker = new BackgroundWorker ();
worker.DoWork + = (o, ea) =>
{
//Do task here
};
worker.RunWorkerCompleted + = (o, ea) =>
{
IsVMBusy = false;
};
IsVMBusy = true;
worker.RunWorkerAsync();