Ich versuche einen Komponententest aufzubauen und möchte ein DropEvent vortäuschen.WPF Unit Test, UIElement.RaiseEvent, ArgumentException
Ich erhalte einen Fehler, da versucht wird, das Ereignis auszulösen. Ich kann keine DragEventArgs erstellen, wenn der Schutzlevel intern ist.
System.ArgumentException : Object of type 'System.Windows.RoutedEventArgs' cannot be converted to type 'System.Windows.DragEventArgs'
ich folgendes haben ...
[Test]
public void Test()
{
DesignerMock view = new DesignerMock();
_viewModel = (PanelDesignViewModel)view.DataContext;
view.Show();
Assert.IsNotNull(_viewModel);
RoutedEventArgs args = new RoutedEventArgs(DesignerCanvas.DropEvent,view.DesignerCanvas) ;
view.DesignerCanvas.RaiseEvent(args);
view.Close();
}
Nicht hartnäckig, nur hoffnungsvoll. Ich versuche das ViewModel zu testen, aber es reagiert auf Ereignisse. Ich kann das Ereignis umgestalten, aber ich habe immer noch einige VisualTreeHelper-Sachen, die immer noch eine Mock-Ansicht benötigen, um damit zu arbeiten. Vielen Dank. – jeff
Wenn Ihr ViewModel direkt auf UI-Ereignisse reagiert, stimmt etwas nicht mit Ihrem Design ... Sie haben wahrscheinlich ein entscheidendes Prinzip von MVVM missverstanden, das besagt, dass das ViewModel unabhängig von der Benutzeroberfläche ist –