Files
XCEngine/tests/RHI/test_factory.cpp
ssdfasd 70571316da feat(RHI): 添加 RHIFactory 工厂类
- 新增 RHIFactory 头文件和实现,支持通过 RHIType 或字符串创建设备
- 修复 D3D12Buffer 缺失的 Map/Unmap/SetData 实现
- 添加 RHI 工厂测试用例
- 更新 CMakeLists.txt 添加新文件
2026-03-18 01:33:15 +08:00

45 lines
1020 B
C++

#pragma once
#include <gtest/gtest.h>
#include "XCEngine/RHI/RHIFactory.h"
#include "XCEngine/RHI/D3D12/D3D12Device.h"
using namespace XCEngine::RHI;
TEST(RHIFactory, CreateD3D12Device_ReturnsValidPointer) {
RHIDevice* device = RHIFactory::CreateRHIDevice(RHIType::D3D12);
ASSERT_NE(device, nullptr);
delete device;
}
TEST(RHIFactory, CreateD3D12DeviceByName_ReturnsValidPointer) {
RHIDevice* device = RHIFactory::CreateRHIDevice("D3D12");
ASSERT_NE(device, nullptr);
delete device;
}
TEST(RHIFactory, CreateInvalidDevice_ReturnsNullptr) {
RHIDevice* device = RHIFactory::CreateRHIDevice("InvalidAPI");
ASSERT_EQ(device, nullptr);
}
TEST(RHIFactory, CreateInvalidType_ReturnsNullptr) {
RHIDevice* device = RHIFactory::CreateRHIDevice(RHIType::Vulkan);
ASSERT_EQ(device, nullptr);
}
TEST(D3D12DeviceCreation, DirectCreation_Success) {
D3D12Device* device = new D3D12Device();
ASSERT_NE(device, nullptr);
delete device;
}