Итак, предположим, что я издеваюсь над следующим классом:
public class ClassAParams
{
public int RequestedId { get; set; }
public string SomeValue { get; set; }
}
public class ClassA
{
public void ExecuteAction(ClassAParams executeParams) {}
}
Теперь скажите, что у меня есть еще один класс (пусть его называют ClassB), для которого я создаю модульное тестирование, и я хочу убедиться, что при вызове ClassB.Execute() этот ClassB вызывает ClassA.ExecuteAction(), но я хотите, чтобы параметр, вызываемый этим методом, имел значение ClassAParams.RequestedId 1.
Обычно я бы справился с этим, выполнив myMock.Verify(x => x.ExecuteAction(new ClassAParams { RequestedId = 1, SomeValue = "something" }));
Проблема заключается в том, что я не хочу проверять значение параметра SomeValue или любые другие ClassAParams свойства в этом unit test. Другие свойства будут проверяться в других модульных тестах, но для проверки того, что он вызвал правильные свойства в каждом unit test (даже если мне не все в порядке с конкретными модульными тестами), обслуживание устройства будет раздражать.
Можно ли использовать Moq для проверки того, что структура, которая передается в mocked-метод, имеет только определенные свойства в качестве определенного значения и игнорирует остальные?