在c++单元测试器中自定义断言
Custom assertions in a c++ unit tester
我正在做一个c++单元测试器(主要是作为实践),并且对我的实现有一些问题。我希望能够重载我的自定义断言,所以我决定将它们作为函数实现,并将它们包装在命名空间中。
我目前的实现如下:
Tester.h
#include <string>
#define INFO __FILE__, __LINE__
namespace Tester
{
void Assert(char const* input, char const* file_path, int line_number, std::string error_message);
...more overloaded Asserts and some Log functions...
}
当我调用函数时:
#include "Tester.h"
...code...
Tester::Assert(false, INFO, "Some message");
...code...
这工作,但我不确定'INFO'宏是好的做法。我欢迎所有关于这个实现的建议和指示,如果它没有意义,我应该做一些完全不同的事情,请随时告诉我;)
INFO作为宏似乎完全没问题。我更喜欢的另一种选择是使用宏
#define TEST_ASSERT(condition, message) Tester::Asssert(condition, __FILE__, __LINE__, message)
之类的。
如果你有不同数量的参数,像这样可以工作:
#define TEST_ASSERT(condition, ...) Tester::Asssert(condition, __FILE__, __LINE__, __VA_ARGS__)
假设你的编译器足够新,也就是说。
相关文章:
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- C++自定义比较函数
- 如何比较自定义类的std::变体
- std::设置自定义比较器
- 如何正确实现和访问运算符的各种自定义枚举器
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 自定义先决条件对移动分配运算符有效吗
- 使用VS Code和CMake Tools运行自定义命令
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- 使用 Google Test 对自定义断言函数进行单元测试
- 如何编写一个接受如下断言消息的自定义断言函数:assert(false) << "assertio
- C ++ Google test (gtest):如何创建自定义断言和期望?
- 如何编写自定义断言
- 在VS2012单元测试中创建和测试自定义MFC CEdit时,在第21行的afxwin1.inl中断言
- 为什么自定义静态断言的实现不会立即静态断言"true"?
- 带有自定义消息的基于模板的编译时断言只能在某些编译器中编译
- 自定义类指针的优先级队列断言错误
- 调试断言失败与字符串流::灌输和自定义全局运算符新
- 在c++单元测试器中自定义断言