2015-03-12 5 views
0

Я модульного тестирования метод Post, что в его реализации используетReturnForAnyArgs без использования NSubstitute

Microsoft.AspNet.Identity.Owin.SignInManager 

потому SignInManager наследовать от класса и не интерфейс, я не могу использовать NSubstitute издеваться объект SignInManager. Поэтому я не могу использовать метод ReturnForAnyArgs, чтобы заставить его вернуть SignInStatus, например, «Успех».

Есть ли способ вернуться к любым аргументам без использования NSubstitute?

ответ

1

SignInManager имеет некоторые виртуальные методы, которые NSubstitute сможет высмеять (имея в виду, что какой-то реальный код будет выполняться, потому что это класс с некоторыми не виртуальными членами). Или вы можете обернуть функции, которые вам нужны, от SignInManager с помощью вашего собственного интерфейса, издеваться над ними в тестах и ​​использовать класс адаптера для реализации, использующей SignInManager под капотом.

Я также нашел some info on mocking custom sign-in stuff под заголовком «Использование в контроллере», который может помочь.

+0

Мы использовали этот http://www.codeproject.com/Articles/342082/Understanding-and-Implementing-the-Adapter-Pattern для создания ISignInManager и класса адаптера, который его реализует. – Marta

Смежные вопросы