NSubstitute Mock 静态类和静态方法

Ric*_*tos 5 c# mocking nsubstitute visual-studio-2017

我正在尝试模拟静态类中的静态方法。我已经读到你不能这样做,但我正在寻找一种方法来解决这个问题。

我无法修改代码,并且在不静态的情况下制作相同的函数也不是一个选择,因为他们检查测试的代码覆盖率,而我需要至少 90%。
我已经尝试模拟它使用的变量,但它不起作用。

public static class MyClass
{
    public static response MyMethod(HttpSessionStateBase Session, 
        otherVariable, stringVariable)
    {
        //some code
    }
}

public ActionResult MyClassTested()
{
    var response = MyClass.MyMethod(Session);
    //more code
}
Run Code Online (Sandbox Code Playgroud)

我的问题是这个方法位于一个控制器内部,该控制器声明一个带有响应的 var ,并根据该变量重定向用户。

Dav*_*pak 1

如果您无法修改代码,那么我认为无法使用 NSubstitute 等基于 DynamicProxy 的库来解决此问题。这些库使用继承来拦截类上的成员,这对于静态和非虚拟成员是不可能的。

我建议尝试假货。该页面上的示例之一涉及存根DateTime.Now

其他可以模拟静态成员的替代方案包括 TypeMock 和 Telerik JustMock。

相关问题:/sf/ask/410485351/