在Grails测试中放置模拟需求语句的正确位置是什么

时间:2014-10-15 15:43:14

标签: unit-testing grails spock

我正在使用Grails并使用Spock框架编写测试。 我试图弄清楚测试中放置模拟代码的正确部分(给定,在哪里,然后设置......)。

例如,以下是否正确?

void "test Something"() {
    given:
       //build mock and add demand statements...

    when:
       //Call method
}

1 个答案:

答案 0 :(得分:2)

我倾向于把我的要求放在当时的部分,除非我有复杂的模拟,在这种情况下我将它们放在给定的部分,但它们将在两个地方都有效。

void "test Something"() {
    given:
       def myService = Mock(MyService)
       mainThing.myService = myService

    when:
       mainThing.doCall()

    then:
       1 * myService.call() >> 'value'
}