我用的是WPF
比如有一个button的点击事件,里面用到了e(MouseButtonEventArgs)的属性
这时候如何对这个点击事件做单元测试
------解决思路----------------------
new这个EventArgs呗,然后调用对应的方法,你单元测试做到UI级别的……
------解决思路----------------------
我做的也不多,个人理解单元测试一般做到BLL级别(Service)就可以了吧,如果你需要做到UI级别,那只能说估计你大部分业务逻辑写到了UI部分,UI级别的应该是自动化测试部分了吧
有误还请轻喷
------解决思路----------------------
http://wenku.baidu.com/view/cf683886bceb19e8b8f6babb.html?re=view
https://msdn.microsoft.com/zh-cn/library/system.windows.automation.peers(v=vs.100).aspx
------解决思路----------------------
不过,这是一个“边缘问题”,实际上通常你并不是微软(它是底层开发者,他保证事件参数正确无误,而不是你需要测试的),你并不需要在这个层面去测试。
“用户点击按钮”,在你的流程图上是一个操作的起点,还是中间环节?如果是中间环节,我只能说你还不大可能会画流程图。用户交互操作环节的可能性很多,你的某个处理程序应该根据输入而“开始”操作。你的单元测试应该以调用这个操作方法为起点,而不用去测试到底是谁调用了这个方法。
你的UI程序可能会注册一个事件处理代码,捕获这个按钮的click事件,读取事件参数,然后调用上述操作方法。
你的单元测试应该以调用上述操作方法为起点,而不是以“点击”按钮为起点。
如果要测试连续的程序行为,比如“在设置了某个状态值之后,用户点击了这个按钮”,那么就改为测试“如果设置了此状态值之后,直接调用上述方法”就可以了,可以跳过中间的模拟用户点击按钮的事件。因为这种底层的点击按钮的事件其实还是很低级的,它返回的MouseButtonEventArgs属性能有什么bug用得着你来测试?你只要测试你负责写的那写代码连续起来会有什么bug就行了。