69 lines
1.8 KiB
C++
69 lines
1.8 KiB
C++
#include "gtest/gtest.h"
|
||
#include "src/utils.cpp"
|
||
#include <iostream>
|
||
#include <sstream>
|
||
|
||
// 测试未使用的函数
|
||
TEST(UtilsTest, UnusedFunction) {
|
||
// 由于 unused_function 是静态的且无参数无返回值,
|
||
// 主要测试它能否被正常调用而不产生运行时错误
|
||
EXPECT_NO_THROW(unused_function());
|
||
|
||
// 调用函数,验证没有崩溃或异常
|
||
unused_function();
|
||
|
||
// 由于函数没有输出和副作用,这里主要验证调用成功
|
||
SUCCEED();
|
||
}
|
||
|
||
// 测试未使用代码的函数 - 正常场景
|
||
TEST(UtilsTest, TestUnusedCodeNormal) {
|
||
// 重定向 cout 以捕获输出
|
||
std::stringstream buffer;
|
||
std::streambuf* old = std::cout.rdbuf(buffer.rdbuf());
|
||
|
||
// 调用函数
|
||
test_unused_code();
|
||
|
||
// 恢复 cout
|
||
std::cout.rdbuf(old);
|
||
|
||
// 验证输出是否正确(y 的值是 200)
|
||
EXPECT_EQ(buffer.str(), "200\n");
|
||
}
|
||
|
||
// 测试未使用代码的函数 - 多次调用
|
||
TEST(UtilsTest, TestUnusedCodeMultipleCalls) {
|
||
std::stringstream buffer;
|
||
std::streambuf* old = std::cout.rdbuf(buffer.rdbuf());
|
||
|
||
// 多次调用函数
|
||
test_unused_code();
|
||
test_unused_code();
|
||
|
||
std::cout.rdbuf(old);
|
||
|
||
// 验证两次调用的输出
|
||
EXPECT_EQ(buffer.str(), "200\n200\n");
|
||
}
|
||
|
||
// 测试未使用代码的函数 - 无异常调用
|
||
TEST(UtilsTest, TestUnusedCodeNoThrow) {
|
||
// 验证函数调用不会抛出异常
|
||
EXPECT_NO_THROW(test_unused_code());
|
||
}
|
||
|
||
// 测试边界情况 - 函数可重复调用
|
||
TEST(UtilsTest, TestUnusedCodeRepeatedCalls) {
|
||
// 连续调用 100 次,验证不会崩溃
|
||
for (int i = 0; i < 100; ++i) {
|
||
EXPECT_NO_THROW(test_unused_code());
|
||
}
|
||
SUCCEED();
|
||
}
|
||
|
||
// 主函数
|
||
int main(int argc, char **argv) {
|
||
::testing::InitGoogleTest(&argc, argv);
|
||
return RUN_ALL_TESTS();
|
||
} |