【问题标题】:Problems with wrapping static type包装静态类型的问题
【发布时间】:2014-10-12 18:12:29
【问题描述】:

目前我正在开发使用带有很多静态方法的 3-rd 方静态类型的应用程序。

例如

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

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

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

public interface InterfaceForTesingNeeds {
    void WrappedM();
}

现在我面临的问题是A 中的大量方法对于执行每个方法的手动包装来说太重要了。任何人都可以提供某种方式,我如何将静态类型“自动包装”为非静态?

【问题讨论】:

标签: c# unit-testing mocking


【解决方案1】:

大多数模拟框架要求您更改解决方案的架构、创建和实现接口以及动态加载实现。

但是,您也可以使用 Microsoft Fakes,无需更改您的应用程序。假货随 Visual Studio 一起提供,因此您无需下载或安装任何东西。

欲了解更多信息,请参阅http://msdn.microsoft.com/en-us/library/hh549175.aspx

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

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

【讨论】:

    猜你喜欢
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多