【问题标题】:Why can't we mock a final class?为什么我们不能模拟最后一堂课?
【发布时间】:2016-05-05 07:35:49
【问题描述】:

我是 Java 新手,一般没有做过太多单元测试。
有人能告诉我为什么不能模拟 final 类吗?

【问题讨论】:

    标签: java unit-testing mocking final


    【解决方案1】:

    Java 世界中最常见的模拟框架无法模拟final 类/方法,因为它们通常基于创建代理。无法为 final 类创建代理,因为我们不能将 (extends) 子类化为 final 类。

    但是,有一些变通方法和解决方案,其中许多可以在here 找到。

    【讨论】:

      【解决方案2】:

      JMockit 能够模拟最终类、方法、静态和私有字段,因为它主要基于 java.lang.instrument 包类和代理对象创建。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-18
        • 1970-01-01
        相关资源
        最近更新 更多