【发布时间】:2016-05-05 07:35:49
【问题描述】:
我是 Java 新手,一般没有做过太多单元测试。
有人能告诉我为什么不能模拟 final 类吗?
【问题讨论】:
标签: java unit-testing mocking final
我是 Java 新手,一般没有做过太多单元测试。
有人能告诉我为什么不能模拟 final 类吗?
【问题讨论】:
标签: java unit-testing mocking final
Java 世界中最常见的模拟框架无法模拟final 类/方法,因为它们通常基于创建代理。无法为 final 类创建代理,因为我们不能将 (extends) 子类化为 final 类。
但是,有一些变通方法和解决方案,其中许多可以在here 找到。
【讨论】:
JMockit 能够模拟最终类、方法、静态和私有字段,因为它主要基于 java.lang.instrument 包类和代理对象创建。
【讨论】: