gpt4 book ai didi

c++ - 单元测试模板代码

转载 作者:搜寻专家 更新时间:2023-10-31 01:35:05 25 4
gpt4 key购买 nike

假设我有很多模板代码,我可以使用 static_assert 进行测试,例如

template <typename Help>
class SomeUtil { ... };

static_assert(std::is_same<SomeUtil<Type>::type, int>::value, "message");

通过制作只包含此 header 并编译它的 main.cpp 来测试它的唯一方法是吗? -fsyntax-only 似乎不起作用。

最佳答案

好吧,假设你有一个像 gtest 这样的测试框架,我会尝试编写一个像

TEST_F(MyTestClass,CheckSomeUtilCompiles) {
std::string codeInQuestion = R"(
#include "MyTemplate.h"
int main() {
// instantiate SomeUtil with some invalid condition:
SomeUtil<int> x;
}
)";
std::ofstream testFile("testcode.cpp");
testfile << codeInQuestion;
testfile.close();

EXPECT_EQ(?,system("$CPP -c $CPPFLAGS testcode.cpp -o /dev/null"));
// ^ Something other than zero
}

关于c++ - 单元测试模板代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37999170/

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