返回 Task 的 Moq 单元测试方法

问题描述 投票:0回答:0

我有一个返回任务的服务方法。它更新外部存储中的对象。

对于返回

Task<T>
的其他端点,我正在编写这样的测试:

  • 为了测试成功案例,我设置了
    invoker
    DeleteAsync
    方法,使其返回基于 validResponse.json 测试文件的有效模型对象
  • 我对无效测试做了同样的事情,但是使用了一个 invalidResponse.json 测试文件
  • 然后断言结果ID为空或不为空

但是对于这个端点,只测试调用方法被调用一次是否合理?因为它只返回任务

这就是我正在尝试的:

private readonly Mock<ILogger<DeleteService> _logger = new Mock<ILogger<DeleteService>();
private readonly Mock<DeleteServiceInvoker> _serviceInvoker = new Mock<IDeleteServiceInvoker>();

public async Task DeleteService_Success() {
    var deleteService = new DeleteService(_logger.Object, _serviceInvoker.Object);
    await deleteService.DeleteService(It.IsAny<DeleteRequest>());
    _serviceInvoker.Verify(m=>m.DeleteAsync(???), Times.Once());

// what do I assert? or is this sufficient as is?
}
c# .net unit-testing mocking moq
© www.soinside.com 2019 - 2024. All rights reserved.