Wie teste ich Grails Service mit Spock?

Ich habe einEncouragementService.groovy mit folgender Methode

  class EncouragementService {
   def stripePaymentService 

   def encourageUsers(List<User> users){
     if(null != users && users.size()>0){
      for(User user : users){
        //logic
        stripePaymentService.encourage(user)
        //
      }
     }   
   }
  }

Um den obigen Code im JAVA-Universum zu testen, würde ich mit JUnit zuerst zwei oder drei Benutzer im Setup erstellen. Übergeben Sie die Liste der Benutzer anencourageUsers(...) Methode und überprüfen Sie, was ich mit dem Ergebnis wollen.

Wie kann ich hier in Grails dasselbe erreichen,

import com.github.jmkgreen.morphia.Datastore;

@TestFor(EncouragementService)
class EncouragementServiceSpec {

  def morphiaService = new MorphiaService()

  void testEncourageUsers() {
        List<User> users = createUsers();
        encouragementService.(users)  
            //
  }

  def createUsers(){
       Datastore datastore = morphiaService.dataStoreInstance()
       def user = new User()
       user.setName("Prayag Upd")
       //
       datastore.save(user)
       [user]
  }
}

ich benutzeSpock: 0,7

plugins {
    test(":spock:0.7") { exclude "spock-grails-support" }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage