使用存储过程的单元测试Dapper查询

时间:2018-10-04 07:39:37

标签: unit-testing stored-procedures dapper

我正在尝试使用Dapper为项目设置单元测试。 Dapper代码专门用于带有一个或多个参数的调用过程。

示例方法:

public MemberInformationView GetMemberInformation(string personnumber, int? regionId)
{
    IEnumerable<Get_Member_Info_Item> dataQuery = null;
    using (IDbConnection db = _ContextFactory.GlobalDatabaseProvider.Context)
    {
        dataQuery = db.Query<Get_Member_Info_Item>(
                "[repository].[Get_Member_Info]",
                new
                {
                    @Personnummer = personnumber,
                    @Region_ID = regionId
                },
                commandType: CommandType.StoredProcedure
            );
    }

    MemberInformationView result = null;
    if (dataQuery?.Any() == true)
        result = MapMemberInfoToView(dataQuery);

    return result;
}

MapMemberInfoToView()只是将数据库对象重新映射到可以传递的公共视图模型。

_ContextFactory.GlobalDatabaseProvider是一个可以模拟的接口。我倾向于是否可以捕获过程名称和参数并进行检查,以便它们可以正常运行,如果调用该过程名称可以返回结果以测试映射是否正常。但是我不确定这是正确的方法。唯一似乎可以完全正确地进行集成测试的方法只能正确回答方法是否正确。

那我该如何对它进行单元测试?

0 个答案:

没有答案