diff --git a/tests/test_utils.cpp b/tests/test_utils.cpp new file mode 100644 index 0000000..37d94b2 --- /dev/null +++ b/tests/test_utils.cpp @@ -0,0 +1,69 @@ +#include "gtest/gtest.h" +#include "src/utils.cpp" +#include +#include + +// 测试未使用的函数 +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(); +} \ No newline at end of file