C# 在C语言中,如何自动测试Word查找/替换代码?

C# 在C语言中,如何自动测试Word查找/替换代码?,c#,automated-tests,word-automation,C#,Automated Tests,Word Automation,我有一个C#应用程序,它可以自动从数据库中填写Word中的表单。 我目前正在将单元测试添加到我的应用程序中。有很多调用Replace(…),这是Range.Find.Execute(…)的“简单”包装。我还有其他几个更复杂的方法,它们只是用来替换(…)的花式包装器。我的大多数方法都在同一个类WordWrapper中,它还处理WordApplication对象和打开的文档列表的分配和取消分配。什么是自动化测试类似内容的好方法 我特别想确保我的分配和取消分配得到了正确处理,并且在与Word交谈时出现

我有一个C#应用程序,它可以自动从数据库中填写Word中的表单。 我目前正在将单元测试添加到我的应用程序中。有很多调用
Replace(…)
,这是
Range.Find.Execute(…)
的“简单”包装。我还有其他几个更复杂的方法,它们只是用来替换(…)的花式包装器。我的大多数方法都在同一个类
WordWrapper
中,它还处理
WordApplication
对象和打开的
文档
列表的分配和取消分配。什么是自动化测试类似内容的好方法

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


更新:我担心分配/取消分配的原因是,Word是一个昂贵的创建/销毁对象,因此我将其设置为静态对象,以便在调用实际运行Word的窗体窗口之间重复使用它。

我强烈建议这不是一个自动测试功能

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

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


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

如果你需要测试你是否正确处理了Word中的错误和异常,那么最好的办法就是为你的测试创建一个模拟接口

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


但是,我不知道有哪种模拟框架明确针对Word。

另一方面,自动化解决方案会找到一些东西。例如,我至少希望得到一些保证,以后的替代者不会与以前的替代者发生冲突。即使有数量有限的链接文本替换,我发现很难判断添加另一个是否安全。在这里,对内容的单元测试可能很有用,你不认为吗?我不同意“不要进行自动测试,使用QAs”的方法。为什么不能两者兼而有之?它们都有不同的用途。@GertArnold:使用automated可以做的最好的事情就是确保函数调用工作正常。这意味着你的代码说“替换文本”,它没有失败。除此之外,其他一切都必须通过对最终文件的目视检查来获取。@Chris。而这正是目视检查无论多么有用(当然)都会错过的。但恐怕我们(我)有点离题了。可怜的Raystorm还没有得到答案:我特别想在与Word交谈时确定我的分配(…)。@Chris我确实有测试用户,这是我最初的解决方案,并且仍然是我最终解决方案的一部分。我只是在寻找一种方法来尽可能多地测试我的应用程序,以便在我发布给测试用户之前捕获尽可能多的错误/bug。