hzdavid / jmockit.cn

JMockit中文网(jmockit.cn)上所有讲述的测试示例源代码
36 stars 15 forks source link

JMockit Capturing注解Mock动态代理类对象 #21

Closed RobertoHuang closed 5 years ago

RobertoHuang commented 5 years ago

你好

@Capturing主要用于子类/实现类的Mock

我在运行该页面的Demo时,发现动态代理生成的类并没有被Mock

jmockit版本:1.36 junit版本:4.9 相关链接:http://jmockit.cn/showArticle.htm?channel=2&id=7

hzdavid commented 5 years ago

@RobertoHuang 你是说你跑页面的例子时, Assert.assertTrue(privilegeManager2.isAllow(testUserId)); 这个断言不成立吗?

RobertoHuang commented 5 years ago

对 发现把jmockit版本升级到1.44后可以了

hzdavid commented 5 years ago

1.36 也可以跑通的。

image

可以下载 https://github.com/hzdavid/jmockit.cn/blob/master/src/test/java/cn/jmockit/demos/basic/CapturingTest.java

来运行试试。

RobertoHuang commented 5 years ago

在多次试验后发现闹了个乌龙...

因为我本地代码Proxy引入的是Spring的代理

但是这也说明一个问题是在1.3.6中如果是Spring代理的类 jmockit的探针是无效的 在1.44后是可以的