Я борюсь с использованием moq и проверкой параметров, передаваемых в методы mocked-интерфейса. У меня есть код как:
MockRepository mockRepository = new MockRepository(MockBehavior.Default);
Mock<IConfigurationUpdater> workerInstanceMock = mockRepository.Create<IConfigurationUpdater>();
Mock<IConfiguration> configurationMock = mockRepository.Create<IConfiguration>();
configurationMock.Setup(t => t.Folder).Returns("Folder");
configurationMock.Setup(t => t.FileName).Returns("FileName");
workerInstanceMock
.Setup(
x => x.DoSomeWork(
It.Is<string>(
t => t == Path.Combine(configurationMock.Object.Folder, configurationMock.Object.FileName))))
.Verifiable("DoSomeWork not properly called");
mockRepository.VerifyAll();
Проблема в том, что внутри лямбда-выражения, созданного для «It.Is», все свойства configurationMock (которые были настроены ранее) равны нулю. (если я возьму этот «Path.Combine» в строку, все будет работать нормально).
В этом случае «Path.Combine» завершается ошибкой, поскольку он получил нулевые параметры.
Как правильно использовать макеты и проверить, что мой интерфейс вызывается с правильными параметрами.
Спасибо,
флорин