Предположим, я издеваюсь над следующим классом:
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 ()
, но я хочу убедиться, что параметр it вызывает этот метод с ClassAParams.RequestedId
значением 1.
Обычно я бы справился с этим, выполнив myMock.Verify (x => x.ExecuteAction (new ClassAParams {RequestedId = 1) , SomeValue = "something"}));
Проблема в том, что я не хочу проверять значение параметра SomeValue
или любые другие свойства ClassAParams
в этом модуле тестовое задание. Другие свойства будут проверяться в других модульных тестах, но необходимость проверки того, что он вызывается с правильными свойствами в каждом модульном тесте (даже когда меня не волнует объем конкретных модульных тестов), сделает обслуживание модуля раздражающим.
Есть ли способ использовать Moq для проверки того, что структура, которая передается в имитационный метод, имеет только определенные свойства в качестве определенного значения, и игнорировать остальные?