Скажем, у меня есть метод A.Do (Arg arg), который присваивает некоторые свойства arg (класс Arg), скажем, он устанавливает arg.Prop1 = "done". И я тестирую пустой метод B.Do (void):
public class B { public void Do() { var arg = InitArg(); A.Do(arg) ... } }
и я смоделировал класс A как новый Mock () с CodeBase = true. Итак, как мне проверить, что arg.Prop1 == "done"?
У вас должен быть модульный тест для класса A, который проверяет, что аргумент, в который передается ваш пароль, корректно обрабатывается, вместо того, чтобы пытаться проверить это поведение с помощью B.Do ().
С приведенным примером вы не можете. arg является закрытым для метода B.Do (), поэтому невидим для внешнего мира, поэтому вы не можете проверить его свойства.
arg
В любом случае, довольно разумно добавить такую функциональность для MoQ для проверки аргументов после вызова метода. Потому что наличие функции, которая MoQ проверяет количество вызовов метода, логически приводит к возможности проверки аргументов.