您需要设置
Test Double
的
GetCompanyById
方法,这样它就不会返回null:
[Theory]
[InlineData(1)]
public async Task CompanyController_DeleteCompany_ShouldReturnStatusCode204(int id)
{
var mockCompany = new Mock<ICompanyRepository>();
mockCompany.Setup(service => service.GetCompanyById(id))
.ReturnsAsync();
var sut = new CompanyController(mockCompany.Object);
var result = (OkObjectResult) await sut.DeleteCompany(id);
result.StatusCode.Should().Be(204);
mockCompany.Verify(service => service.DeleteCompany(id);
}
另一方面,您不需要设置
DeleteCompany
作为一个可验证的操作,因为它无论如何都不会返回任何内容。
Mocks for Commands, Stubs for Queries
使用
mockCompany.Verify
而是如上所示。