AI 自动生成测试用例
This commit is contained in:
parent
7111afdfb2
commit
cec5a112b8
|
|
@ -0,0 +1,25 @@
|
||||||
|
cmake_minimum_required(VERSION 3.10.0)
|
||||||
|
project(test_ODF)
|
||||||
|
include(FetchContent)
|
||||||
|
if (MSVC)
|
||||||
|
add_compile_options(/utf-8)
|
||||||
|
endif()
|
||||||
|
FetchContent_Declare(
|
||||||
|
googletest
|
||||||
|
URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip
|
||||||
|
)
|
||||||
|
# For Windows: Prevent overriding the parent project's compiler/linker settings
|
||||||
|
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||||
|
FetchContent_MakeAvailable(googletest)
|
||||||
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../include)
|
||||||
|
|
||||||
|
include(CTest)
|
||||||
|
enable_testing()
|
||||||
|
|
||||||
|
add_executable(test_ODF test_list_racks.cpp ../app/main.py)
|
||||||
|
|
||||||
|
target_link_libraries(test_ODF gtest gmock gtest_main)
|
||||||
|
include(GoogleTest)
|
||||||
|
gtest_discover_tests(test_ODF)
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
// 假设 RackInfo 结构体
|
||||||
|
struct RackInfo {
|
||||||
|
std::string rackName;
|
||||||
|
int unitCount;
|
||||||
|
};
|
||||||
|
|
||||||
|
// 假设 list_racks 函数的声明,返回 std::vector<RackInfo>
|
||||||
|
std::vector<RackInfo> list_racks();
|
||||||
|
|
||||||
|
// 测试夹具,用于准备公共测试数据
|
||||||
|
class ListRacksTest : public ::testing::Test {
|
||||||
|
protected:
|
||||||
|
void SetUp() override {
|
||||||
|
// 在需要时初始化
|
||||||
|
}
|
||||||
|
|
||||||
|
void TearDown() override {
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 正常输入测试:存在多个机架时,验证返回列表非空且信息正确
|
||||||
|
TEST_F(ListRacksTest, testListRacksNormal) {
|
||||||
|
std::vector<RackInfo> racks = list_racks();
|
||||||
|
ASSERT_FALSE(racks.empty());
|
||||||
|
EXPECT_GT(racks.size(), 0);
|
||||||
|
// 假设至少有一个机架名称为已知值,例如 "ODF-A"
|
||||||
|
bool found = false;
|
||||||
|
for (const auto& rack : racks) {
|
||||||
|
if (rack.rackName == "ODF-A") {
|
||||||
|
found = true;
|
||||||
|
EXPECT_GT(rack.unitCount, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EXPECT_TRUE(found) << "ODF-A rack should exist";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 边界值测试:没有机架时,返回空列表
|
||||||
|
TEST_F(ListRacksTest, testListRacksEmpty) {
|
||||||
|
// 需要 mock 或控制 list_racks 返回空列表,假设系统根本没有配置机架
|
||||||
|
// 由于无法直接控制,此测试依赖于测试环境,此处仅给出示例逻辑
|
||||||
|
std::vector<RackInfo> racks = list_racks();
|
||||||
|
EXPECT_TRUE(racks.empty());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 特殊场景测试:验证列表中的每个机架都有单元数量
|
||||||
|
TEST_F(ListRacksTest, testListRacksEachRackHasUnitCount) {
|
||||||
|
std::vector<RackInfo> racks = list_racks();
|
||||||
|
for (const auto& rack : racks) {
|
||||||
|
EXPECT_GE(rack.unitCount, 0); // 单元数量应非负
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue