初始化
Some checks failed
Some checks failed
This commit is contained in:
194
backend/HardwarePerformance.Infrastructure.Tests/TestBase.cs
Normal file
194
backend/HardwarePerformance.Infrastructure.Tests/TestBase.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user