Rhino Mocks - AssertWasCalled, когда один параметр имеет значение DateTime.Now - PullRequest
1 голос
/ 27 марта 2012

Я пишу модульные тесты для C # Log-класса, который вызывает метод журнала на интерфейсе ILogHandler с добавленной временной меткой, например:

log(string msg, LogLevel lvl)
{
   _handler.log(DateTime.Now, msg, lvl);
}

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

Есть предложения?

Спасибо:)

1 Ответ

2 голосов
/ 28 марта 2012

Можно привести аргументы ожидания:

handler.AssertWasCalled(h => h.Log(Arg<DateTime>.Is.Anything, 
                                   Arg<string>.Is.Equal(msg),
                                   Arg<LogLevel>.Is.Equal(lvl)));

Это проверит, что первым параметром, переданным в зависимость, является любой DateTime. Если вы хотите установить некоторые ограничения, добавьте часть Arg.Matches к аргументу.

...