有没有办法可以使用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"
}
答案 0 :(得分:3)
是的,以下示例完全正常:
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
}