我有以下表达式
private IObservable<Point> GetLeftMouseDown()
{
return from pattern in Observable.FromEventPattern<MouseButtonEventArgs>(_element, "MouseDown")
where pattern.EventArgs.ChangedButton == MouseButton.Left
select pattern.EventArgs.GetPosition(_element);
}是否可以模拟测试的事件源?我应该如何处理GetPositionMethod,它调用了系统函数,而它不是虚拟的?
发布于 2016-01-11 17:29:12
您不需要在单元测试中测试GetLeftMouseButtonDown函数。你到底在测试什么?您正在测试Linq、Rx和EventArgs对象,没有一个是您编写的。我可能会写一个快速的交互式集成风格的测试,以确保我实际上是得到左按钮点击,并认为它很好。
在测试中,您要做的是将一个IObservable<Point>传递到被测试的方法中。然后,您可以传入一个可以将值放入其中的IObservable。我可能只使用一个Subject对象,不需要编写您自己的模拟实现。
然后,将想要对其进行测试的任何值流进行拍摄,并观察测试中的结果。
https://stackoverflow.com/questions/34726874
复制相似问题