如何使用值模板编写文档测试用例?
How do I write a doctest test case with a value template?
在 doctest(C++测试框架(中,我们可以编写:
TEST_SUITE("foo") {
TEST_CASE_TEMPLATE("bar", T, t1, t2, t3) {
/* code using template parameter T */
}
}
这有效 - 如果t1
、t2
、t3
是类型。它的实现方式是doctest生成代码,包括
template<typename T>
inline void DOCTEST_ANONYMOUS(_DOCTEST_ANON_TMP_)()
并为T
之后的宏参数调用此函数。这显然不适用于值参数,例如TEST_CASE_TEMPLATE("bar", MyType, v1, v2, v3)
.
我们可以使用 doctest 在数字参数上创建模板吗?
一个丑陋的解决方案(不使用任何文档测试工具(将是:
template <typename T, T Value>
struct value_as_type { static constexpr const T value { Value }; };
然后替换
TEST_CASE_TEMPLATE("bar", T, t1, t2, t3) { /*... etc ... */ }
跟:
TEST_CASE_TEMPLATE("bar", MyType,
value_as_type<MyType, v1>,
value_as_type<MyType, v2>,
value_as_type<MyType, v3>)
{
constexpr const MyType val { MyType::value };
/*... etc ... */
}
相关文章:
- pybind11 运行测试用例
- GTest,仅参数化测试用例
- 如何使用不同的谷歌模拟运行相同的谷歌测试用例?
- 请找出我的代码中的错误,它在提交得到错误答案的同时仍然适用于我的所有测试用例
- 如何使用值模板编写文档测试用例?
- 用于查找最低共同祖先的代码不适用于某些测试用例
- 为什么给定的代码不适用于所有测试用例?为什么当输入为 7786 时它不起作用?
- GTest - 在不同的参数上运行多个测试用例
- 如何创建演示 /EH 成本的最小测试用例?
- 查找在 4 和问题中代码失败的测试用例
- 如何编写在函数执行过程中垃圾回收的测试用例?
- 括号检查器完美地适用于单个测试用例,但对于所有测试用例,它给出了分段错误?
- 我已经通过了该问题的所有测试用例,甚至是Udebugg上的所有测试用例,并且仍然在UVA在线法官上获得了WA裁决
- 如何使用参数化测试用例
- 相同的测试用例,但代码块和Ideone的输出不同
- 在老板层次结构中查找"top"老板仅适用于某些测试用例
- Eclipse 项目中的 OSCPack 外部库测试用例
- 每次使用不同的fixture多次执行一个测试用例
- 在BOOST test中添加测试套件而不是测试用例
- 如何在谷歌代码堵塞中输入c++代码中的测试用例