Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数据表与交互相结合_Java_Groovy_Spock - Fatal编程技术网

Java 将数据表与交互相结合

Java 将数据表与交互相结合,java,groovy,spock,Java,Groovy,Spock,是否有任何方法可以使用斯波克的数据表来验证交互 def test(int a, String b) { expect: service.save(a) 1 * repository.save({ def test -> test.value == b }) where: a | b 1 | "one" 2 | "two" } 是的,下面的示例非常有效: import spock.lang.Specificati

是否有任何方法可以使用斯波克的数据表来验证交互

def test(int a, String b) {

  expect:
  service.save(a)
  1 * repository.save({ 
      def test ->
        test.value == b
  })

  where:
  a  |  b
  1  |  "one"
  2  |  "two"
}

是的,下面的示例非常有效:

import spock.lang.Specification

class LolSpec extends Specification {

    def 'lol'() {
        given:
        def repository = Mock(Repository)
        def service = new Service(repository: repository)

        when:
        service.save(a)

        then:
        1 * repository.save({ it ->
            it.value == b
        })

        where:
        a | b
        1 | "one"
        2 | "two"
    }

}

class Repository {
    def save(Entity e) {

    }
}

class Service {
    Repository repository

    def save(Integer value) {
        Entity e
        if (value == 1) {
            e = new Entity(value: "one")
        } else {
            e = new Entity(value: "two")
        }
        repository.save(e)
    }
}

class Entity {
    String value
}