Moq.Dapper: Mocking нескольких QueryAsync разных T - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь смоделировать свои Dapper-запросы, и для этого конкретного случая использования мне нужно иметь возможность смоделировать несколько вызовов на QueryAsync<>, но для разных T с.

Однако, похоже, что вызовы SetupDapperAsync отменяют первый вызов, даже для других T.

Пример выглядит так:

var mock = new Mock<IDbConnection>();
mock.SetupDapperAsync(c => c.QueryAsync<int>(It.IsAny<string>(), null, null, null, null)).ReturnsAsync(new[] { 1 });
mock.SetupDapperAsync(c => c.QueryAsync<string>(It.IsAny<string>(), null, null, null, null)).ReturnsAsync(new[] { "test" });
var actual = await mock.Object.QueryAsync<int>("", null, null, null, null); // This will throw an error because it tries to convert "test" to int.

Мысли?В моем случае я хочу, чтобы T1 и T2 были двумя разными объектами, не примитивами, а одной и той же проблемой.

Библиотека Moq.Dapper

...