从VS6移植到VS2008时,在异常架构中使用单元测试?

时间:2010-09-28 13:46:00

标签: c++ visual-studio visual-studio-2008 unit-testing

我们有一个主应用程序,最多可执行5个不同的exes。这些exes独立运行并通过UDP相互通信。目前还没有计划改变这种架构。

我们希望将整个事物从VS6迁移到VS2008。 我正在考虑添加单元测试,以确保迁移后一切仍然有效。目前,没有一个单元测试。

所以现在我有几个问题:

  • 哪个单元测试框架适用于VS6和VS2008? CppUnit似乎适用于两个编译器,至少我让它运行。
  • 如何在上述架构中实现单元测试?我看到一个问题,我有可执行文件,没有库,所以对我来说似乎有点困难
  • 是否值得为这两个平台创建单元测试,或者您有更简单的建议吗?

建议,最佳实践,欢迎新想法:)

由于

2 个答案:

答案 0 :(得分:1)

如果他们通过UDP进行通信,并且您希望确保片段之间的集成现在和以后工作,您可以针对MSTest中的UDP接口或VS2008中的NUnit编写自动测试。

在VS2008中编写测试,并将接口的输入/验证输出发送到.exe应用程序。然后,当您切换到.NET时,只需将测试指向.NET .exe的新端点并运行它们以验证所有输入和输出是否相同。

我认为你会花更多时间专门为新应用程序编写单元测试,但是针对外部UDP接口编写测试以验证迁移是否成功。

答案 1 :(得分:1)

如果您愿意将每个可执行文件视为“模块”,那么有一种方法可以在不过于侵入的情况下引入测试。 这将创建一些对于许多人来说有点大的模块(当人们谈论模块是类或源文件时的典型大小),但是你的通信机制提供了一种很好的方法来挂钩测试。

使用您拥有的体系结构以及您没有代码的现有测试工具这一事实,我将编写一个测试工具,可以使用UDP接口隔离地与每个可执行文件进行通信。 执行测试时,只运行一个可执行文件(除了测试代码)。测试代码通过监听各自的UDP端口并按照测试用例的要求提供响应来模拟其他可执行文件。测试用例还通过向其发送UDP请求来激发测试中的可执行文件。如果还涉及GUI / TUI,则可能需要手动执行部分测试。