Я написал несколько тестов, используя XUnit и Moq.Один из методов реализации макета интерфейса принимает параметр типа Expression<Func<T, bool>>
Кажется, все работает хорошо, но у меня проблемы с пониманием работы проверки того, что метод вызывается с правильным выражением.
Учитывая следующеетест, метод не возвращает значение, указанное в настройке, даже если вызов кажется правильным.1009 * Когда я изменяю свою настройку следующим образом, я получаю результат, но в моей функции проверки говорится, что функция никогда не вызывается (или, по крайней мере, с данным выражением).:
crudService.Setup(crud => crud.GetEntitiesAsync(It.IsAny<Expression<Func<DefinitionType, bool>>>()))
.Returns(Task.FromResult<IEnumerable<DefinitionType>>(new List<DefinitionType> {
new DefinitionType {
Name = "Test",
Description = "Test",
DisplayName = "Test",
ID = Guid.NewGuid()
} }));
Сейчас я также изменил проверку на более общую:
crudService.Verify(crud => crud.GetEntitiesAsync(It.IsAny<Expression<Func<DefinitionType, bool>>>()), Times.Once);
Теперь мой тест пройден, но я действительно хочу убедиться, что метод вызывается правильно, а невызывается на всех.Как мне решить это самым простым / лучшим способом?