私は最近 Model-View-Presenter を使用していますが、やり方を理解したような気がすると、よくわからない新しいことに出くわします。
私の現在のケースでは、PictureEdit(基本的にPictureBoxは DevExpress の WinForms コントロールの一部として称賛されている)を使用しPictureEditています。
マウス ホイールでスクロールすると、画像が上下にパンします。代わりに、これを特定の量だけズームインおよびズームアウトしたい。だから私は次のことを試しました:
public class AlteredPictureEdit : PictureEdit
{
protected override void OnMouseWheel(MouseEventArgs e)
{
if (e.Delta > 0)
this.Properties.ZoomPercent += 10;
else
this.Properties.ZoomPercent -= 10;
}
}
そのため、これにより の動作が、PictureEditパンではなくマウス スクロールでズームするように変更されます。しかし、私は単体テストを行う気があるので、そうしたいのですが、方法がわかりません。
動作的には、独自のプレゼンター (テスト対象のユニット) を設計し、依存関係が挿入されたビューをモックとしてフィードします。次に、モックを使用してイベントを発生させ、値が増加または減少したことMouseWheelをアサートできます。ZoomPercent
を継承することPictureEditで、単体テストするプレゼンターやモックするビューがありません。OnMouseWheel変更されたイベントをテストするために発生させることはできませんZoomPercent。
上記のように、これを行う適切な方法を継承してPictureEditいますか? また、クラスに加えた変更を単体テストするにはどうすればよいですか?