2017-10-02 1 views
1

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" 
} 

답변

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 
} 
관련 문제