【发布时间】:2020-10-29 10:48:59
【问题描述】:
我试图在类构造函数中像这样模拟我的服务的创建方法:
serviceMock.Setup(p => p.AddClinic(GetTestClinicModel()))
.Returns(GetTestClinic());
模拟模型和模拟实体
private CreateClinicBindingModel GetTestClinicModel()
{
return new CreateClinicBindingModel()
{
Name = "Clinic-3"
};
}
private Clinic GetTestClinic()
{
return new Clinic()
{
Id = 3,
Name = "Clinic-3"
};
}
测试方法
[Fact]
public void Add_ValidObjectPassed_ReturnsCreatedResponse()
{
// Act
var createdResponse = controller.Add(GetTestClinicModel());
// Assert
Assert.IsType<CreatedAtActionResult>(createdResponse);
}
控制器添加方法
[HttpPost("create")]
public IActionResult Add(CreateClinicBindingModel model)
{
if (!ModelState.IsValid)
{
return BadRequest();
}
var entity = _service.AddClinic(model);
return Created(entity);
}
所以我的问题是测试失败,当我调试 _service.AddClinic() 方法时它返回 null。
模拟服务未返回预期的实体(诊所)。
我该如何解决这个问题?
【问题讨论】:
标签: c# unit-testing asp.net-core moq xunit