ユニットテストを構築しようとしていて、DropEventを偽造したいと思います。WPFユニットテスト、UIElement.RaiseEvent、ArgumentException
イベントを発生させようとしているときにエラーが発生します。 DragEventArgsを作成できません。保護レベルは内部です。
私は、次のしているSystem.ArgumentException : Object of type 'System.Windows.RoutedEventArgs' cannot be converted to type 'System.Windows.DragEventArgs'
...
[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();
}
ほんとうに希望はありません。私はViewModelをテストしようとしていますが、イベントに反応します。私はイベントをリファクタリングすることができますが、VisualTreeHelperの機能はまだまだありますが、それにはモックビューが必要です。ありがとう。 – jeff
ViewModelがUIイベントに直接応答している場合は、デザインに何か問題があります... MVVMの重要な原則である誤解されていることは、ViewModelがUIから独立しているということです –