AI 自动生成测试用例
This commit is contained in:
parent
fa2a0dee39
commit
eda060638c
|
|
@ -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();
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue