完成变量服务的单元测试

This commit is contained in:
2025-07-24 21:41:00 +08:00
parent 4657a461e3
commit 35e5033094
9 changed files with 152 additions and 20 deletions

View File

@@ -51,6 +51,7 @@ public class BaseServiceTest
// 注册应用服务
services.AddTransient<IDeviceAppService, DeviceAppService>();
services.AddTransient<IVariableTableAppService, VariableTableAppService>();
services.AddTransient<IVariableAppService, VariableAppService>();
// services.AddTransient<IVariableAppService, VariableAppService>(); // 如果需要测试 VariableService取消此行注释
// ... 在这里注册所有其他的应用服务 ...

View File

@@ -0,0 +1,78 @@
using DMS.Application.DTOs;
using DMS.Application.Interfaces;
using DMS.Application.Services;
using JetBrains.Annotations;
using Microsoft.Extensions.DependencyInjection;
namespace DMS.Infrastructure.UnitTests.Services;
[TestSubject(typeof(VariableAppService))]
public class VariableAppServiceTest : BaseServiceTest
{
private readonly IVariableAppService _variableAppService;
public VariableAppServiceTest()
{
_variableAppService = ServiceProvider.GetRequiredService<IVariableAppService>();
}
[Fact]
public async Task CreateVariableAsyncTest()
{
// Arrange
var dto = FakerHelper.FakeVariableDto();
dto.VariableTableId = 1; // Assuming a variable table with ID 1 exists for testing
// Act
var createdId = await _variableAppService.CreateVariableAsync(dto);
// Assert
Assert.NotEqual(0, createdId);
}
[Fact]
public async Task UpdateVariableAsyncTest()
{
// Arrange: Create a variable first
var createDto = FakerHelper.FakeVariableDto();
createDto.VariableTableId = 1; // Assuming a variable table with ID 1 exists for testing
var createdId = await _variableAppService.CreateVariableAsync(createDto);
Assert.NotEqual(0, createdId);
// Retrieve the created variable to update
var variableToUpdate = await _variableAppService.GetVariableByIdAsync(createdId);
Assert.NotNull(variableToUpdate);
// Modify some properties
variableToUpdate.Name = "Updated Variable Name";
variableToUpdate.Description = "Updated Description";
// Act
var affectedRows = await _variableAppService.UpdateVariableAsync(variableToUpdate);
// Assert
Assert.Equal(1, affectedRows);
var updatedVariable = await _variableAppService.GetVariableByIdAsync(createdId);
Assert.NotNull(updatedVariable);
Assert.Equal("Updated Variable Name", updatedVariable.Name);
Assert.Equal("Updated Description", updatedVariable.Description);
}
[Fact]
public async Task DeleteVariableAsyncTest()
{
// Arrange: Create a variable first
var createDto = FakerHelper.FakeVariableDto();
createDto.VariableTableId = 1; // Assuming a variable table with ID 1 exists for testing
var createdId = await _variableAppService.CreateVariableAsync(createDto);
Assert.NotEqual(0, createdId);
// Act
var isDeleted = await _variableAppService.DeleteVariableAsync(createdId);
// Assert
Assert.True(isDeleted);
var deletedVariable = await _variableAppService.GetVariableByIdAsync(createdId);
Assert.Null(deletedVariable);
}
}