c++ - 什么是单元测试模板化 C++ 方法/类/函数的好方法?

标签 c++ unit-testing templates

我正在寻找一种在 C++ 中对我的模板化方法、类和函数进行单元测试的好方法。 我有一种感觉,仅仅使用单一类型进行测试是不够的,仅仅复制单元测试并替换类型也感觉不对。

更具体地说,我正在研究一个 Matrix 类并使用 Boost 的单元测试框架。 Matrix 适用于不同类型。它主要用于基本类型,但我希望它也支持具体类型。

注意,我这样做是为了学习,这就是为什么我没有使用现有的矩阵实现。

最佳答案

Boost 测试有一个宏 BOOST_AUTO_TEST_CASE_TEMPLATE 对 boost::mpl::list 中每种类型的模板运行测试。

template<typename T>
T Add(T lh, T rh)
{
   return lh + rh;
}

typedef boost::mpl::list<int, float> test_types;

BOOST_AUTO_TEST_CASE_TEMPLATE(Add_1Plus2_Is3, T, test_types)
{
    T result = Add(T(1), T(2));
    BOOST_CHECK_EQUAL(T(3), result);
}

http://www.boost.org/doc/libs/1_48_0/libs/test/doc/html/utf/user-guide/test-organization/auto-test-case-template.html

关于c++ - 什么是单元测试模板化 C++ 方法/类/函数的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10247061/

相关文章:

unit-testing - 单元测试数据模型 : related entities

javascript - 模板在 Meteor 中如何工作

templates - EmberJS 加载子状态 : What logic does it use to climb the route hierarchy to find the loading template?

c++ - 模板的实例化

静态方法中使用的 c++ static unorderd_map 未初始化

c++ - Notepad++ 中 gcc 的最终设置 [使用 nppexec]

unit-testing - Grails getErrorCount()返回多个错误,如何获取错误列表?

c++ - Visual Studio natvis 语句的局部变量

C++11 - 返回表达式以确定类型

c# - UWP 单元测试调试 "Unable to attach to CoreCLR"