Compare commits

...

1 Commits

Author SHA1 Message Date
lids eda060638c AI 自动生成测试用例 2026-04-16 16:36:57 +08:00
1 changed files with 73 additions and 0 deletions

73
tests/test_utils.cpp Normal file
View File

@ -0,0 +1,73 @@
#include "gtest/gtest.h"
#include "src/utils.cpp"
#include <iostream>
#include <sstream>
// 测试未使用函数
TEST(UtilsTest, UnusedFunctionNoCrash) {
// 测试目标:验证调用 unused_function 不会导致程序崩溃
// 由于该函数没有参数和返回值,主要测试其可执行性
EXPECT_NO_THROW(unused_function());
}
TEST(UtilsTest, UnusedFunctionNoSideEffects) {
// 测试目标:验证调用 unused_function 不会产生可观测的副作用
// 该函数内部只定义局部变量,不应影响外部状态
// 由于函数是静态的且无返回值,只能验证调用不会抛出异常
EXPECT_NO_THROW(unused_function());
// 可以添加一些全局状态检查(如果有相关全局变量的话)
// 但当前函数没有操作任何全局状态,所以只需确保调用安全
}
// 测试未使用变量函数
TEST(UtilsTest, TestUnusedCodeOutput) {
// 测试目标:验证 test_unused_code 函数输出正确值
// 重定向标准输出以捕获函数输出
std::stringstream buffer;
std::streambuf* old = std::cout.rdbuf(buffer.rdbuf());
test_unused_code();
std::cout.rdbuf(old); // 恢复标准输出
// 验证输出是否为 "200\n"y的值加换行符
EXPECT_EQ(buffer.str(), "200\n");
}
TEST(UtilsTest, TestUnusedCodeNoException) {
// 测试目标:验证 test_unused_code 函数不会抛出异常
EXPECT_NO_THROW(test_unused_code());
}
TEST(UtilsTest, TestUnusedCodeMultipleCalls) {
// 测试目标:验证多次调用 test_unused_code 函数行为一致
std::stringstream buffer1, buffer2;
std::streambuf* old = std::cout.rdbuf(buffer1.rdbuf());
test_unused_code();
std::cout.rdbuf(buffer2.rdbuf());
test_unused_code();
std::cout.rdbuf(old); // 恢复标准输出
// 验证两次调用输出相同
EXPECT_EQ(buffer1.str(), buffer2.str());
EXPECT_EQ(buffer1.str(), "200\n");
}
// 边界条件测试:虽然这两个函数没有参数,但可以测试调用频率
TEST(UtilsTest, HighFrequencyCalls) {
// 测试目标:验证高频调用不会导致问题
for (int i = 0; i < 1000; ++i) {
EXPECT_NO_THROW(unused_function());
EXPECT_NO_THROW(test_unused_code());
}
}
// 主函数
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}