模拟Spock的最后一堂课

时间:2015-12-06 20:00:57

标签: mocking final spock

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

1 个答案:

答案 0 :(得分:18)

此规范:

Unparseable date: "2015-12-07T13:21:17.996Z" (at offset 10)

以以下例外结束:

@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

效果很好。

相关问题