初始化
Some checks failed
CI/CD Pipeline / 测试 (18.x) (push) Has been cancelled
CI/CD Pipeline / 测试 (20.x) (push) Has been cancelled
CI/CD Pipeline / 安全检查 (push) Has been cancelled
CI/CD Pipeline / 部署 (push) Has been cancelled
CI/CD Pipeline / 通知 (push) Has been cancelled

This commit is contained in:
2025-11-03 19:47:36 +08:00
parent 7a04b85667
commit f25b0307db
454 changed files with 37064 additions and 4544 deletions

View File

@@ -0,0 +1,194 @@
using Microsoft.EntityFrameworkCore;
using HardwarePerformance.Core.Entities;
using HardwarePerformance.Infrastructure.Data;
namespace HardwarePerformance.Infrastructure.Tests
{
/// <summary>
/// 测试基类提供InMemory数据库设置
/// </summary>
public abstract class TestBase : IDisposable
{
protected AppDbContext _context;
protected DbContextOptions<AppDbContext> _options;
public TestBase()
{
// 创建InMemory数据库选项
_options = new DbContextOptionsBuilder<AppDbContext>()
.UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
.Options;
// 创建数据库上下文
_context = new AppDbContext(_options);
// 初始化数据库
SeedDatabase();
}
/// <summary>
/// 初始化测试数据
/// </summary>
protected virtual void SeedDatabase()
{
// 创建测试类别
var categories = new List<Category>
{
new Category { Id = 1, Name = "手机CPU", Description = "移动设备处理器", IconUrl = "cpu" },
new Category { Id = 2, Name = "电脑CPU", Description = "桌面处理器", IconUrl = "desktop" },
new Category { Id = 3, Name = "手机GPU", Description = "移动设备图形处理器", IconUrl = "gpu" },
new Category { Id = 4, Name = "电脑GPU", Description = "桌面图形处理器", IconUrl = "graphics" }
};
_context.Categories.AddRange(categories);
// 创建测试数据源
var dataSources = new List<DataSource>
{
new DataSource { Id = 1, Name = "GeekBench", Description = "GeekBench基准测试", Url = "https://www.geekbench.com" },
new DataSource { Id = 2, Name = "3DMark", Description = "3DMark图形性能测试", Url = "https://www.3dmark.com" },
new DataSource { Id = 3, Name = "AnTuTu", Description = "AnTuTu综合性能测试", Url = "https://www.antutu.com" }
};
_context.DataSources.AddRange(dataSources);
// 创建测试产品
var products = new List<Product>
{
new Product
{
Id = 1,
Name = "Snapdragon 8 Gen 3",
Model = "SM8650-AB",
Manufacturer = "Qualcomm",
CategoryId = 1,
ReleaseDate = new DateTime(2023, 10, 24),
CurrentRank = 1,
ImageUrl = "https://example.com/snapdragon8gen3.jpg"
},
new Product
{
Id = 2,
Name = "Apple A17 Pro",
Model = "A17 Pro",
Manufacturer = "Apple",
CategoryId = 1,
ReleaseDate = new DateTime(2023, 9, 12),
CurrentRank = 2,
ImageUrl = "https://example.com/a17pro.jpg"
},
new Product
{
Id = 3,
Name = "Intel Core i9-13900K",
Model = "i9-13900K",
Manufacturer = "Intel",
CategoryId = 2,
ReleaseDate = new DateTime(2022, 10, 20),
CurrentRank = 1,
ImageUrl = "https://example.com/i913900k.jpg"
},
new Product
{
Id = 4,
Name = "AMD Ryzen 9 7950X",
Model = "Ryzen 9 7950X",
Manufacturer = "AMD",
CategoryId = 2,
ReleaseDate = new DateTime(2022, 9, 27),
CurrentRank = 2,
ImageUrl = "https://example.com/ryzen97950x.jpg"
}
};
_context.Products.AddRange(products);
// 创建测试性能分数
var performanceScores = new List<PerformanceScore>
{
new PerformanceScore
{
Id = 1,
ProductId = 1,
DataSourceId = 1,
Score = 7300,
TestType = "Single-Core",
TestDate = new DateTime(2023, 11, 1)
},
new PerformanceScore
{
Id = 2,
ProductId = 1,
DataSourceId = 1,
Score = 22000,
TestType = "Multi-Core",
TestDate = new DateTime(2023, 11, 1)
},
new PerformanceScore
{
Id = 3,
ProductId = 2,
DataSourceId = 1,
Score = 7100,
TestType = "Single-Core",
TestDate = new DateTime(2023, 10, 1)
},
new PerformanceScore
{
Id = 4,
ProductId = 2,
DataSourceId = 1,
Score = 21000,
TestType = "Multi-Core",
TestDate = new DateTime(2023, 10, 1)
},
new PerformanceScore
{
Id = 5,
ProductId = 3,
DataSourceId = 1,
Score = 3200,
TestType = "Single-Core",
TestDate = new DateTime(2022, 11, 1)
},
new PerformanceScore
{
Id = 6,
ProductId = 3,
DataSourceId = 1,
Score = 22000,
TestType = "Multi-Core",
TestDate = new DateTime(2022, 11, 1)
},
new PerformanceScore
{
Id = 7,
ProductId = 4,
DataSourceId = 1,
Score = 3100,
TestType = "Single-Core",
TestDate = new DateTime(2022, 10, 1)
},
new PerformanceScore
{
Id = 8,
ProductId = 4,
DataSourceId = 1,
Score = 21000,
TestType = "Multi-Core",
TestDate = new DateTime(2022, 10, 1)
}
};
_context.PerformanceScores.AddRange(performanceScores);
// 保存更改
_context.SaveChanges();
}
public void Dispose()
{
_context.Dispose();
}
}
}