如何对复杂的电子表格行为进行单元测试

本文关键字:单元测试 电子表格 复杂 | 更新日期: 2023-09-27 18:36:28

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

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

是否有用于WinForms的硒或其他方法可以做到这一点?

如何对复杂的电子表格行为进行单元测试

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