大佬教程收集整理的这篇文章主要介绍了如何模拟Groovy中的Traits提供的方法/函数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Trait Sender { def send(String msg){ // do something } } class service implements Sender { def mymethod1(){ send('Foo') mymethod2() } def mymethod2(){ } }
我正在尝试测试service类.但是,我想存根/模拟对特征(发送)提供的方法的调用?
我已经尝试了几种不同的方法来存根/模拟方法发送,但没有成功:
// 1 service.Metaclass.send = { String s -> // do nothing } // 2 def service = new Myservice() service.MetaClass.send = { String s -> // do nothing } // 3 stubFor servicestub = new stubFor(service.class) servicestub.demand.send { String s -> // do nothing } // Trait mockedSender { def send(String msg) { // do nothing } } def service = new service() as mockedSender
像这样:
Trait Sender { def send(String msg){ println msg } } class service implements Sender { def mymethod1(){ send('Foo') mymethod2() } def mymethod2(){ println 'real implementation' } } class UnitTest extends Specification { def "TesTing spy on real object"() { given: service service = Spy(servicE) when: service.mymethod1() then: "service.send('Foo') should be called once and should print 'mocked' and 'real implementation' on console" 1 * service.send('Foo') >> { println 'mocked' } } }
以上是大佬教程为你收集整理的如何模拟Groovy中的Traits提供的方法/函数全部内容,希望文章能够帮你解决如何模拟Groovy中的Traits提供的方法/函数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。