在mock对象的函数中验证并设置list参数

时间:2015-10-08 08:44:51

标签: c# unit-testing moq

我有和接口IDatabaseInteraction:

public interface IDatabaseInteraction
{
    void FillAppSection(List<AppSectionId> appSectionIds);
}

AppSectionId的定义是:

public class AppSectionId
{
    public string App;
    public string Section;
    public int Id;
}

我将数据库调用抽象为IDatabaseInteraction,用于测试的类。 列表进来(在appSectionIds中的这个测试用例1项)并在FillAppSection方法中更新,Id被填充。 我想检查项目App和Section值,其次,我想设置Id。 我如何使用moq做到这一点?

1 个答案:

答案 0 :(得分:1)

我通常会更改该方法以返回Callback,因为我认为更清楚。但是,如果你想继续这样,那么你可以使用Moq Mock<IDatabaseInteraction> databaseInteraction = new Mock<IDatabaseInteraction>(); databaseInteraction.Setup(x => x.FillAppSection(It.IsAny<List<AppSectionId>>())).Callback((List<AppSectionId> x) => x.Add(someObject)); 方法,如下所示:

Callback

List方法中,您可以随意设置 markers = googleMap.addMarker(new MarkerOptions().position(new LatLng(lat, lng)).icon(bitmapDescriptor).title(strVname).snippet("Known @" + strTime + "," + allDate));