我正在尝试用c ++构建一个测试程序,以自动化测试特定的应用程序。测试将涉及将具有字段“CommandType”和其他一些字段的请求发送到服务器
commandType可以是'NEW','CHANGE'或'DELETE' 测试可以是
如何设计我的软件(什么样的模块或层),以便添加任何新类型的测试用例都很容易和模块化?
编辑:更具体地说,此测试将仅测试一个获取上述类型请求并处理它们的特定应用程序。这将是一个客户端应用程序,将请求发送到服务器。
答案 0 :(得分:1)
我不会创建自己的框架。有很多已经写好的,遵循一个共同的模式,可以优雅地满足您的需求。
我见过的所有版本中的xUnit框架允许您添加新的测试用例,而无需编辑运行测试的代码。例如,CppUnit提供了一个宏,当添加到测试用例时,将使用全局注册表自动注册测试用例(通过我假设的静态初始化)。这允许您添加新的测试用例而不会破解打开并编辑运行它们的东西。
答案 1 :(得分:0)
我会将每个单独的测试分成它自己的程序,或者如果它需要超出一两个函数的代码,它就是它自己的源文件。然后在我的主要例程中,我会做类似的事情:
void main()
{
run_test_1();
run_test_2();
//...
run_test_N();
}
或者,我建议利用Boost Test Library并遵循其约定。
答案 2 :(得分:0)
我假设你不是在谈论创建单元测试。
恕我直言,你的问题太模糊,无法提供有用的答案。这是为了测试一个特定的应用程序,还是你试图制作足够通用的东西来测试尽可能多的不同应用程序?这些应用程序在哪里生活?它们是客户端服务器应用程序,Web应用程序等吗?
如果您希望工具测试的是多个应用程序,则需要一个在测试工具和应用程序之间创建协议的体系结构,以便您可以转换工具和工具使用者的指令。了解被测试的应用程序可以理解的指令。我过去做过类似的事情,但我只需要担心5种不同的“应用程序”,所以总结应用程序的所有独特功能然后创建支持它们的interfact是一个非常简单的问题。所有
我不认为NEW,CHANGE和DELETE也是你唯一的命令类型。许多测试涉及数据清理,测试报告等。应用程序都以自己的特殊方式处理这些问题。
答案 3 :(得分:0)
使用C ++单元测试框架,阅读this了解详细信息和示例