Я пытаюсь проверить вызов метода, используя Moq, но не могу понять синтаксис правильно.В настоящее время я использую это как подтверждение:
repository.Verify(x => x.ExecuteNonQuery("fav_AddFavorites", new
{
fid = 123,
inputStr = "000456"
}), Times.Once());
Код компилируется, но тест завершается неудачно с ошибкой:
Expected invocation on the mock once, but was 0 times:
x => x.ExecuteNonQuery("fav_AddFavorites", new <>f__AnonymousType0<Int32, String>(123, "000456"))
No setups configured.
Performed invocations:
IRepository.ExecuteNonQuery("fav_AddFavorites", { fid = 123, inputStr = 000456 })
Как проверить вызов метода и сопоставитьПараметры метода для анонимного типа.
ОБНОВЛЕНИЕ
Чтобы ответить на вопросы:
Я пытаюсь убедиться, что метод был вызван и чтопараметры верны.
Подпись метода, который я пытаюсь проверить:
int ExecuteNonQuery(string query, object param = null);
Код установки просто:
repository = new Mock<IRepository>();
ОБНОВЛЕНИЕ 2
Похоже, что это проблема с Moq и как он обрабатывает анонимные типы в .Net.Код, написанный Полом Матовичем, работает нормально, однако, как только код и тест находятся в разных сборках, тест завершается неудачей.