gpt4 book ai didi

c++ - C++ 单元测试器中的自定义断言

转载 作者:太空宇宙 更新时间:2023-11-04 14:11:22 25 4
gpt4 key购买 nike

我正在研究一个 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++ - C++ 单元测试器中的自定义断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14015131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com