【发布时间】:2017-04-13 12:14:26
【问题描述】:
当使用 CGLIB 增强测试主题对象时,有没有办法让 EasyMock 的 @TestSubject 注释起作用?
场景:@TestSubject 对象是一个 Spring bean,它使用 CGLIB 进行了增强,以便应用某些方面(假设由于某种原因 Spring 不能使用基于 JDK 的代理)。在这种情况下,简单地使用@TestSubject 和EasyMockSupport.injectMocks(this) 并不能真正起作用。 EasyMock 注入了模拟,但是在执行期间模拟实际上并没有被使用,因为 CGLIB 增强类的内部是如何工作的。最后,它使用对象的原始引用,而不是模拟。
我知道的唯一方法是在测试对象中创建一个设置器,并手动调用设置器注入模拟。但是有时我没有访问/权限/时间来更改主题代码以包含设置器。
【问题讨论】: