我得到了这个:
private List<NameValuePair<CarTemplateType>> m_tempCars
public IList<NameValuePair<CarTemplateType>> CarTypes
{
get
{
if (m_tempCars == null)
{
//somelogic
}
return m_tempCars;
}
}
CarsVM
有 Init
,其中 m_tempCars
正在设置:
m_tempCars= CarTypes.FirstOrDefault(x => x.Value == my_data.CarTypes);
现在我有
TestMethod
:
[TestMethod]
Public void SomeTest()
{
CarsVM cars = new CarsVM ();
cars.CarTypes = ??? //
...
}
如何以某种方式模拟/设置它?
如果您使用起订量:
Mock<Car> carMock = new();
car.Setup(x => x.CarTypes()).Returns(new List<CarTypes>());
你不能在 C# 中模拟列表,你已经创建了一个实际的列表,但你可以将所有模拟的对象插入到列表中,前提是你引用了模拟对象:
List<Car> carList = new List<Car>();
carList.Add(car.Object);
通常,您可以通过遵循 SOLID 原则使您的代码更具可测试性。他们将确保您的代码模块保持较小,并且易于测试和扩展。