【发布时间】:2021-08-16 19:31:34
【问题描述】:
我正在为控制器方法编写测试。该方法访问SupplyRepository 中的getPharmacySupply 方法,根据项目要求返回PharmacyMedicineSupply 列表:
[HttpPost("PharmacySupply")]
public Task<List<PharmacyMedicineSupply>> GetPharmacySupply([FromBody] List<MedicineDemand> medDemand)
{
_log4net.Info("Get Pharmacy Supply API Acessed");
return _supplyRepo.GetPharmacySupply(medDemand);
}
这些是我的模型:
public class MedicineStock
{
public string Name { get; set; }
public string ChemicalComposition { get; set; }
public string TargetAilment { get; set; }
public DateTime DateOfExpiry { get; set; }
public int NumberOfTabletsInStock { get; set; }
}
public class PharmacyMedicineSupply
{
public string pharmacyName { get; set; }
public List<MedicineNameAndSupply> medicineAndSupply { get; set; }
}
public class MedicineNameAndSupply
{
public string medicineName { get; set; }
public int supplyCount { get; set; }
}
这是我正在写的测试:
public static List<MedicineDemand> mockMedicineDemand= new List<MedicineDemand>()
{
new MedicineDemand()
{
Medicine = "Medcine1",
DemandCount = 20
},
new MedicineDemand()
{
Medicine = "Medcine2",
DemandCount = 25
},
new MedicineDemand()
{
Medicine = "Medcine3",
DemandCount = 30
},
new MedicineDemand()
{
Medicine = "Medcine4",
DemandCount = 35
},
new MedicineDemand()
{
Medicine = "Medcine5",
DemandCount = 40
}
[Test, TestCaseSource(nameof(mockMedicineDemand))]
public void Test_GetPharmacySupply(List<MedicineDemand> mockMedicineDemand)
{
Mock<ISupplyRepo> supplyMock = new Mock<ISupplyRepo>();
SupplyController sc = new SupplyController(supplyMock.Object);
var result = sc.GetPharmacySupply(mockMedicineDemand) as Task<List<PharmacyMedicineSupply>>;
var resultList = result.Result;
Assert.That(4,Is.EqualTo( resultList[0].medicineAndSupply[0].supplyCount));
}
但是我收到了这个错误
“MedicineSupplyMicroservice.Models.MedicineDemand”类型的对象无法转换为“System.Collections.Generic.List`1[MedicineSupplyMicroservice.Models.MedicineDemand]”类型。
我做错了什么??
【问题讨论】:
标签: unit-testing .net-core nunit