0

我有一个 C# 应用程序,可以自动从数据库中填写 Word 中的表单。我目前正在向我的应用程序添加单元测试。有很多对 的调用Replace(...),这是对 . 的“简单”包装Range.Find.Execute(..)。我还有其他几个更复杂的方法,它们只是花哨的包装器,Replace(...)我将它们中的大多数放在同一个类中,该类还处理对象和打开列表WordWrapper的分配和解除分配。什么是自动化测试类似东西的好方法? WordApplicationDocument

我特别想确保我的分配和取消分配得到正确处理,并且当与 Word 交谈时出现问题时,我会收到适当的错误消息/异常。

更新:我担心分配/取消分配的原因是,Word 是一个创建/销毁的昂贵对象,所以我将它设为静态,这样我就可以在实际调用表单窗口之间重用它运行单词。

4

2 回答 2

2

我强烈建议这不是自动化测试功能。

我在许多这样的系统上工作过,坦率地说,在文本替换中会发生一些自动化解决方案无法找到的事情。您最好在受影响的业务部门中起草一些同事来对更新进行 QA。

一个例子:假设表单有足够的空间容纳 6 个字符。您注入 10。查找/替换代码显然有效。但是,由于字符数量过多,它完全占用了页面的结构,而原来的 1 个寻呼机现在有 2 个页面……这可能是不可接受的。

更新:我将留下这个答案只是因为它可能会帮助将来有人在文档中查找/替换文本的概念时遇到困难。但是,在重新阅读了这个问题(连同它的更新)之后,我认为这个答案根本不适用。

于 2011-08-25T22:01:24.587 回答
0

如果您需要测试您是否正确处理来自 Word 的错误和异常,那么最好的办法是为您的测试创建一个模拟界面。

这看起来像真正的界面,但是您可以控制每个调用将返回什么,例如,如果您传递“Find xyz”,它将返回“true”,但如果您传递“Find 123”,它将引发异常。然后,您可以验证您的代码是否正确处理此问题。

但是,我不知道任何明确针对 Word 的模拟框架。

于 2011-08-25T22:01:39.143 回答