c++ - 测试 DLL 函数的最佳方法是什么?

标签 c++ c testing dll lua

我想测试我的功能和流程。 Lua脚本是一种测试方式,我能够从lua加载C Lib并调用函数。使用Lua的最大优点是如果你想改变调用场景,你只需要改变你的lua脚本文件并执行它。

但是我想知道有没有更好的方法来测试 DLL 代码?

最佳答案

宇宙中不存在“最好的方法”。需要引用

但是,目前普遍接受的做法是写 automated unit tests 。也就是说,您使用 a unit testing framework它允许您表达库代码的不同使用场景。您可能会将测试视为一大堆小程序,它们使用库中的函数和类来验证其正确性,只不过您实际上并不编写主函数、makefile、打印,所有无聊的事情都会为您处理。测试可以单独通过或失败。通常你可以给它们命名并组织成 block 。当测试失败时,框架通常会解释失败的位置和原因,从而减少调试所需的时间和精力。

单元测试频繁built and ran automatically ,例如重建库后通过 IDE 或监视脚本和/或通过 continuous integration system提交到 version control system 后。

通常,您使用与库相同的语言编写测试(这更简单),但如果您的库设计为与其他语言交互,您当然也可以使用这些语言中的任何一种或多种。

有一个基于单元测试的编程方法的完整分支,称为 Test-driven development (TDD) 。简而言之,TDD 指示您首先针对给定场景编写单元测试,然后才是允许测试通过的最简单的库代码。

C++ 单元测试框架的几个示例(无特定顺序):

关于c++ - 测试 DLL 函数的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47279247/

相关文章:

c++ - 为什么我需要在这个函数中使用指向指针的指针而不是其他任何地方?

c - C 64 位机器中字符串的大小

无法在ubuntu上运行C编译的程序

internet-explorer - 独立于 Internet Explorer 的 Selenium 服务器

typescript - 在 VS Code 下进行 mocha 调试以使用 mocha 的 --file 选项启动每个测试

c++ - 将 variant、vector<variant> 和 vector<vector<variant>> 转换为我选择的等效类型

C++ 参数传递数组与单个项

c++ - 为什么编译器会产生错误?

c - 在 C 中对命令行参数进行排序

javascript - 如何模拟模块导出功能