Mock<T>.Object
属性返回泛型参数的模拟
T
.
所以在你的情况下
mockRefMedicalRepo.Object
是一个
IRepository<RefMedicalSpecialty>
但是你想把它分配给
Mock<IRepository<RefMedicalSpecialty>>
作为错误消息的状态。
这里有一个可能的选择
public class TestRefMedicalSpecialty {
private IRepository<RefMedicalSpecialty> mockRefMedicalRepo;
public TestRefMedicalSpecialty() {
var mockRefMedicalSpecialties = new List<RefMedicalSpecialty>
{
new RefMedicalSpecialty {Code = "10000", Description = "Medical Specialty1"},
new RefMedicalSpecialty {Code = "10001", Description = "Medical Specialty2"},
new RefMedicalSpecialty {Code = "10002", Description = "Medical Specialty3"}
};
var mock = new Mock<IRepository<RefMedicalSpecialty>>();
mock.Setup(_ => _.GetAll()).Returns(mockRefMedicalSpecialties);
this.mockRefMedicalRepo = mock.Object;
}
[Fact]
public void GetAll_Returns_Data() {
//pass the mocked repo into a dependent class and
//exercise test that relies on calling GetAll
}
}
参考
Moq Quickstart
更好地了解如何使用MOQ框架