/ / Projektaufruf testen, um Fenster hängt zu instanziieren, wenn BackgroundWorker verwendet wird - wpf, testing, automatic-tests, backgroundworker

Testprojektaufruf zum Instanziieren Fensterbehang bei Verwendung von BackgroundWorker - wpf, Testen, automatisierte Tests, Hintergrundarbeiter

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 № 1

Unten 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();