当前位置:  开发笔记 > 编程语言 > 正文

模拟Spock的最后一堂课

如何解决《模拟Spock的最后一堂课》经验,为你挑选了1个好方法。

可以嘲笑模拟最后的课程吗?如果是这样,怎么样?搜索结果提出了这个要点,这似乎意味着如此,但我找不到任何这样做的例子.我还发现论坛帖子说不支持模拟最终类.



1> Opal..:

本规范:

@Grab('org.spockframework:spock-core:1.0-groovy-2.4')
@Grab('cglib:cglib-nodep:3.1')

import spock.lang.*

class Test extends Specification {
    def 'lol'() {
        given: 
        def s = Mock(String) {
            size() >> 10
        }

        expect:
        s.size() == 10        
    }
}

以以下例外结束:

JUnit 4 Runner, Tests: 1, Failures: 1, Time: 29 Test Failure:
lol(Test) org.spockframework.mock.CannotCreateMockException:
Cannot create mock for class java.lang.String because Java mocks cannot mock final classes.
If the code under test is written in Groovy, use Groovy mock.

解决方案是使用GroovyMock:

@Grab('org.spockframework:spock-core:1.0-groovy-2.4')
@Grab('cglib:cglib-nodep:3.1')

import spock.lang.*

class Test extends Specification {
    def 'lol'() {
        given: 
        def s = GroovyMock(String) {
            size() >> 10
        }

        expect:
        s.size() == 10        
    }
}

哪个效果很好.


@JulianA。这也是我的经验:GroovyMock对于大多数Java类final方法似乎没有帮助。我想澄清一下...!
推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有