Тестирование: вставить значение, переданное в действие <T> - PullRequest
0 голосов
/ 15 марта 2011

Как вы используете Rhino Mocks для вставки значения в действие?

Register() выполняет действие, назначенное локальной переменной, которая будет использоваться позже в функции:

var result = EnumResult.Timeout;

something.Register<EnumResult>(r => result = r);

<do things with result which need to be unit tested>

Я хочу иметь возможность вводить значение как r в действие (как оно определено в функции) и проверять, что происходит потом.

1 Ответ

0 голосов
/ 15 марта 2011

Не могли бы вы просто пройти лямбду в своем тесте, которая устанавливает некоторую переменную, а затем проверить, что переменная была установлена ​​в конце теста?Примерно так:

var wasCalled = false;
mock.Stub(s => s.Register(r => wasCalled = true);
...
Assert.IsTrue(wasCalled);

Это гарантирует, что ваш метод "Register" вызывает лямбду, которая ему передана.

...