Итак, предположим, что я издеваюсь над следующим классом:
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-метод, имеет только определенные свойства в качестве определенного значения и игнорирует остальные?