【发布时间】:2022-10-17 20:50:27
【问题描述】:
我需要知道如何在 CQRS 模式中进行单元测试。作为初学者,我对此没有太多想法。我在命令和查询下开发。我需要测试那些
这是我的添加学生命令
public record AddStudentCommand(Student student):IRequest<Student>;
听到是我的添加学生哈德勒
public class AddStudentHandler : IRequestHandler<AddStudentCommand, Student>
{
private readonly appDbContext _context;
public AddStudentHandler(appDbContext context)
{
_context = context;
}
public async Task<Student> Handle(AddStudentCommand request, CancellationToken cancellationToken)
{
_context.students.Add(request.student);
await _context.SaveChangesAsync();
return request.student;
}
}
这是获取所有学生查询
public record GetAllStudentDataQuery : IRequest<IEnumerable<Student>>;
这是我的获取所有学生处理程序
public class GetAllStudentHandler : IRequestHandler<GetAllStudentDataQuery, IEnumerable<Student>>
{
private readonly appDbContext _context;
public GetAllStudentHandler(appDbContext context)
{
_context = context;
}
public async Task<IEnumerable<Student>> Handle(GetAllStudentDataQuery request, CancellationToken cancellationToken)
{
return _context.students;
}
}
我需要对这些方法进行单元测试。
【问题讨论】:
-
在每个文本中模拟依赖项并将它们注入到被测对象中。接下来使用必要的参数调用被测成员(即:句柄),最后断言/验证预期的行为。
标签: unit-testing testing asp.net-web-api cqrs