包装静态类型的问题

本文关键字:问题 类型 静态类 静态 包装 | 更新日期: 2023-09-27 18:26:14

目前我正在开发一个应用程序,该应用程序使用带有许多静态方法的第三方静态类型。

例如

public static class A {
    public static void M() {
   //some actions
   }
}

出于测试目的(为了提供创建动态mock的可能性),我将此静态类型包装为具有实例方法的非静态类型。

public class WrappedA : InterfaceForTesingNeeds {
    public void WrappedM() {
    A.M();
    }
}
public interface InterfaceForTesingNeeds {
    void WrappedM();
}

现在我面临的问题是,A中的方法数量太大,无法对每个方法执行手动包装。有人能提供一些方法吗?我如何将静态类型的"自动包装"转换为非静态类型?

包装静态类型的问题

大多数mocking框架都要求您更改解决方案的体系结构,创建和实现接口,并动态加载实现。

但是,您也可以使用Microsoft Fakes,这不需要更改您的应用程序。Visual Studio附带了Fakes,因此您不需要下载或安装任何东西。

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/hh549175.aspx

Microsoft Fakes通过用存根或垫片替换应用程序的其他部分来帮助您隔离正在测试的代码。这些是受测试控制的小代码段。

使用Fakes意味着你不必花时间编写和维护无用的包装代码,你的计算机也不必花费时间执行它。编写这些包装类的最快捷方法是什么?不要写!