Могу ли я использовать Moq для проверки того, что фиктивный метод был вызван с определенными значениями в сложном параметре?

Предположим, я издеваюсь над следующим классом:

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

39
задан KallDrexx 11 June 2011 в 18:03
поделиться