使用高级语言对静态C ++库进行单元测试?

时间:2019-03-19 05:05:44

标签: c++ unit-testing tdd

我想以测试驱动风格编写一些静态C ++库。

我开始四处寻找C ++单元测试框架,然后不知道为什么我根本需要用C ++编写测试代码。

应该有可能从更高级的语言中调用静态C ++库,从而更容易编写测试。

这是一个明智的想法吗?

是否有任何特定的语言可以使其变得特别简单?是Python,Lua还是其他工具?甚至还有特殊的DSL吗?

有什么好的教程提示吗?

1 个答案:

答案 0 :(得分:0)

使用某些语言绑定从其他某种语言测试C ++代码会对测试方式产生一些影响。

使用C ++编写的测试,您的测试代码将更接近真实的客户端代码。这意味着,所有C ++特定的编译时效果都会发生,例如宏扩展,参数的整数提升,重载分辨率,内联,模板实例化等。而且,对于您用C ++编写的每个测试用例,您都将单独发生这种情况您的图书馆。

相反,当使用另一种语言进行测试时,您将必须将C ++函数/方法等绑定到符号或任何其他其他语言(可能使用它们之间的包装函数)。然后,这些语言绑定的编译是发生所有上述编译时间影响的唯一点。

对于您来说,使用其他语言是否带来好的后果(甚至是可取的)取决于您的测试目标,因此您必须对其进行判断。