【问题标题】:Why is mocking preferred with Interfaces?为什么使用接口进行模拟是首选?
【发布时间】:2010-09-04 03:22:53
【问题描述】:

我一直在查看使用 Moq 和 Rhino Mocks 进行模拟的示例,所有示例似乎都是模拟接口。为什么是这样?我听说他们可以模拟静态类,但是非静态类呢?

【问题讨论】:

    标签: mocking moq rhino-mocks


    【解决方案1】:

    因为:

    1. 对象上的所有方法都需要是虚拟的才能模拟它们
    2. 您的模拟仍然需要执行真实对象的构造函数、传递参数并运行其中的逻辑,这可能会很痛苦。

    【讨论】:

      【解决方案2】:

      因为这是 DynamicProxy 的限制(用于创建模拟对象的实例)。使用interface 没问题,但是如果你想使用class 那么你应该将所有public 成员设为virtualhttp://tiredblogger.wordpress.com/2008/05/06/moq-mocks-use-virtual-method-or-interfaces/

      【讨论】:

        猜你喜欢
        • 2016-10-18
        • 2010-09-13
        • 2013-10-09
        • 1970-01-01
        • 2020-12-02
        • 2010-09-15
        • 1970-01-01
        相关资源
        最近更新 更多