验证并设置模拟对象函数中的列表参数
本文关键字:列表 参数 函数 对象 设置 模拟 验证 | 更新日期: 2023-09-27 18:16:31
我有和接口IDatabaseInteraction:
public interface IDatabaseInteraction
{
void FillAppSection(List<AppSectionId> appSectionIds);
}
AppSectionId的定义:
public class AppSectionId
{
public string App;
public string Section;
public int Id;
}
我将被测类的数据库调用抽象为iddatabaseinteraction。列表进入(在这个测试用例中,appSectionIds中的1项)并在FillAppSection方法中更新,Id被填充。我想检查项目App和Section值,其次,我想设置Id。我如何使用moq做到这一点?
我通常会更改该方法以返回List<AppSectionId>
,因为我认为这更清楚。然而,如果你想继续这样做,那么你可以使用Moq Callback
方法,像这样:
Mock<IDatabaseInteraction> databaseInteraction = new Mock<IDatabaseInteraction>();
databaseInteraction.Setup(x => x.FillAppSection(It.IsAny<List<AppSectionId>>())).Callback((List<AppSectionId> x) => x.Add(someObject));
在Callback
方法中,你可以设置List
,但是你喜欢。