Я пытаюсь смоделировать свои 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