1

我有一个 C# 项目,它的大部分复杂行为都实现为用户与之交互的电子表格的事件处理程序。

我熟悉测试代码,但我不确定如何测试电子表格的复杂行为(例如在用户更改单元格的值时添加和删除行或调用第 3 方组件)。不仅编码行为与电子表格行为纠缠在一起,而且当以编程方式更改其值时,我也无法触发电子表格事件。我不知道要模拟什么,因为它也没有真正分成不同的类。

是否有用于 WinForms 的 Selenium 或其他方式来做到这一点?

4

1 回答 1

0

万一其他人遇到这种情况,我最终使用了基本上是适配器模式中介者模式的东西取决于你如何看待它。每个电子表格都由一个适配器包装,该适配器格式化电子表格并与代码通信。该代码告诉中介显示一些域对象,它填充适当的单元格并触发适当的事件(CellEndEdit 等)。用户修改电子表格后,中介将生成的域对象提供给代码。单元测试验证它可以正确地读取和写入域对象,并在代码作用于它时触发正确的事件。其他测试验证当用户将正确的数据放入正确的单元格时,生成的域对象具有正确的数据。这是额外的工作,但现在可以让行为依赖于中介而不是电子表格。

于 2012-08-22T16:35:51.553 回答