Итак, предположим, я издеваюсь над следующим классом:
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
в этом модульном тесте. Другие свойства будут проверены в других модульных тестах, но необходимость проверять, чтобы он вызывался с правильными свойствами в каждом модульном тесте (даже если меня не волнует объем конкретных модульных тестов), сделает обслуживание модуля раздражающим.
Есть ли способ использовать Moq для проверки того, что структура, которая передается в смоделированный метод, имеет только определенные свойства в качестве определенного значения, а остальные игнорировать?