我有一个C#项目,其大部分复杂行为都是作为用户与之交互的电子表格的事件处理程序实现的。
我熟悉测试代码,但我不确定如何测试电子表格的复杂行为(例如在用户更改单元格的值时添加和删除行或调用第三方组件)。编码行为不仅与电子表格行为纠缠在一起,而且在以编程方式更改其值时,我也无法触发电子表格事件。我不知道要嘲笑什么,因为它也没有真正分解成不同的类。
是否存在用于WinForms的Selenium或其他一些方法来执行此操作?
答案 0 :(得分:0)
如果有其他人遇到此问题,我最终会使用的内容基本上是Adapter Pattern或Mediator Pattern,具体取决于您如何看待它。每个电子表格都由适配器包装,该适配器格式化电子表格并与代码通信。代码告诉调解器显示一些域对象,它填充适当的单元格并触发相应的事件(CellEndEdit等)。用户修改电子表格后,调解器会将生成的域对象提供给代码。单元测试验证它可以正确读取和写入域对象,以及在代码对其执行操作时触发正确的事件。其他测试验证当用户将正确的数据放入正确的单元格中时,生成的域对象具有正确的数据。这是额外的工作,但现在可以使行为依赖于调解器而不是电子表格。