ReturnForAnyArgs没有使用NSubstitute

时间:2015-03-12 13:45:27

标签: mocking asp.net-identity owin nsubstitute

我正在测试一个Post方法,该方法在其实现中使用

 Microsoft.AspNet.Identity.Owin.SignInManager

因为SignInManager继承自类而不是接口,所以我不能使用NSubstitute来模拟SignInManager对象。因此,我不能使用ReturnForAnyArgs方法让它返回一个表示成功的SignInStatus。

有没有办法在不使用NSubstitute的情况下返回任何参数?

1 个答案:

答案 0 :(得分:1)

SignInManager有一些虚拟方法,NSubstitute将能够模拟(请记住,一些真正的代码将执行,因为它是一个带有一些非虚拟成员的类)。或者,您可以使用自己的界面从SignInManager包装所需的功能,在测试中模拟它,并使用适配器类提供在引擎盖下使用SignInManager的实现。

我还在“在控制器中使用”标题下找到了some info on mocking custom sign-in stuff,这可能有所帮助。