Модульное тестирование Dapper запросов, которые используют хранимые процедуры - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь настроить модульное тестирование для проекта с использованием 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 - интерфейс, который можно смоделировать.Я склоняюсь к тому, могу ли я поймать имя процедуры и параметры и проверить, чтобы они были в порядке, и вернуть результат, если это имя процедуры вызывается, чтобы проверить, что отображение работает нормально.Но я не уверен, что это правильный подход.Похоже, что полный интеграционный тест - это единственное, что даст правильный ответ, если метод правильный или нет.

Так как же мне провести модульное тестирование?

...