我正在测试一个Post方法,该方法在其实现中使用
Microsoft.AspNet.Identity.Owin.SignInManager
因为SignInManager继承自类而不是接口,所以我不能使用NSubstitute来模拟SignInManager对象。因此,我不能使用ReturnForAnyArgs方法让它返回一个表示成功的SignInStatus。
有没有办法在不使用NSubstitute的情况下返回任何参数?
答案 0 :(得分:1)
SignInManager
有一些虚拟方法,NSubstitute将能够模拟(请记住,一些真正的代码将执行,因为它是一个带有一些非虚拟成员的类)。或者,您可以使用自己的界面从SignInManager
包装所需的功能,在测试中模拟它,并使用适配器类提供在引擎盖下使用SignInManager
的实现。
我还在“在控制器中使用”标题下找到了some info on mocking custom sign-in stuff,这可能有所帮助。