带参数的Groovy模拟Java类
发布时间:2020-12-14 16:26:04 所属栏目:大数据 来源:网络整理
导读:我正在尝试使用groovy的MockFor和proxyDelegateInstance来模拟带有构造函数参数的 java类,但我似乎无法正确使用它.我的 Java类看起来像: class MyJavaClass { private MyObject myObj public MyJavaClass(MyObject myObj) { this.myObj = myObj; }}class My
我正在尝试使用groovy的MockFor和proxyDelegateInstance来模拟带有构造函数参数的
java类,但我似乎无法正确使用它.我的
Java类看起来像:
class MyJavaClass { private MyObject myObj public MyJavaClass(MyObject myObj) { this.myObj = myObj; } } class MyGroovyTest { @Test void testMyJavaClass() { def mock = new MockFor(MyJavaClass) MyJavaClass mjc = new MyJavaClass() def mockProxy = mock.proxyDelegateInstance([mjc] as Object[]) // if I pass mockProxy to anything,I get an error that a matching // constructor could not be found. I've tried variations on the args // to proxyDelegateInstance (such as using mjc as a single arg rather than // an array of one element) } } 我能在groovy中实际做到这一点吗?如果是这样,我该怎么办呢? 谢谢, 解决方法
问题是被模拟的类是一个类而不是接口.为了使用proxyDelegateInstance方法,需要使用接口类型(或groovy类).代理类实际上不是MyJavaClass类型,但它是一个代理,并且groovy的duck typing可以处理,而Java则不能.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读