我正在开发一个基于线性代数概念的库。因此,我在业余时间分阶段构建开发套件。我遇到的一个问题是测试我应该得到的代码和输出。
我有10个测试用例(例如),如下所示:
template<typename T>
void testDiag(T begin, T end)
{
// run test here and check
}
我真正想要的是一种方式(我不知道这是否可行)有一个类“TEST_CASE”并且能够初始化所有测试然后有一种最终方式来运行所有测试但是传递了这个功能。
这样的事情:
class TEST_CASE : public ClassX
{
public:
template<typename T>
TEST_CASE(T begin, T end, FUNCTION_NAME, EXPECTED_OUTPUT)
{
auto test_case = FUNCTION_NAME(begin, end);
// DO SOME COMPARISON
// output error or success
}
int test1([interator])
{
int output = // do something;
return output;
}
protected:
}
所以基本上,我会将一个迭代器传递给构造函数,也是一个执行测试的函数,也是一些预期的输出,然后进行一些比较并显示输出。