2016-09-29 4 views
-1

Derzeit implementieren GEB, Spock, Groovy. Ich stoße auf das Szenario wieWie kann ich suchen und die Werte zurückgeben und es an die Methode aus Spock-Tabelle

Es gibt eine Reihe von Daten in der Spocktabelle. Ich muss den Modulnamen als Parameter übergeben, Suche aus der Spocktabelle und gebe dann zwei Werte Benutzer-ID und Passwort zurück. Unter dem Code ist der Code des Skeletts

Meine Frage ist, wie Modulname basierend auf Parameter suchen? Wie gibt man zwei Daten zurück?

Class Password_Collection extends Specification { 

def "Secure password for search and Data Driven"(String ModuleName) { 

    expect: 
      // Search based on modulename in where 
      // pick the values and return the picked data 


      where: 
      Module    | User_Name  | Pass_word 
      login_Pass   | cqauthor1  | SGVsbG8gV29ybGQ = 
      AuthorPageTest_Pass | cqauthor2  | DOIaRTd35f3y4De = 
      PublisherPage_pass | cqaauthor3 | iFK95JKasdfdO5 == 

} 
     } 

Wenn Sie den Code bereitstellen, wäre es eine große Hilfe zu lernen und zu implementieren.

Antwort

0

Sie müssen die Tabelle nicht selbst durchsuchen oder diese Daten auswählen. Spock wird, dass automatisch für Sie tun

Im erwarten: Block nur Ihre Unit-Test schreiben, der Modul verwendet, User_Name und Pass_word. Spock führt den Test automatisch dreimal (so viele wie die Zeilen der Tabelle) durch und übergibt jede Reihe nacheinander an Ihren Test.

Entfernen Sie das Argument ModuleName aus der Testmethode. Es wird nicht benötigt.

Ich empfehle Ihnen, lesen Sie die Spock-Dokumentation auf Data Driven Tests ein bisschen mehr.

0
class YourSpec extends Specification { 
    def "Secure password for search and Data Driven"(Module, User_Name, Pass_Word) { 
     expect: 
     classUnderTest.getUserNameForModule(Module) == User_Name 
     classUnderTest.getPasswordForModule(Module) == Pass_Word 

     where: 
     Module    | User_Name  | Pass_word 
     login_Pass   | cqauthor1  | SGVsbG8gV29ybGQ = 
     AuthorPageTest_Pass | cqauthor2  | DOIaRTd35f3y4De = 
     PublisherPage_pass | cqaauthor3 | iFK95JKasdfdO5 == 

    } 
} 

Was Spock tun ist Ihr Test einmal für jede Zeile in der Datentabelle aus dem „where“ Block, vorbei Modul, User_Name, Pass_Word als Parameter ausführen und Ihre Erwartungen in dem „erwarten“ Block behauptet. Weitere Informationen finden Sie in der Dokumentation Spock Data Driven Testing.

+0

Szenario ist: Übergabe des Modulnamens, es wird in dem WHERE Block suchen, sobald es übereinstimmt, Benutzername und pass_word sollten erfasst werden und zurück zu einer anderen Methode/Klasse Passwort wird entschlüsselt und UserID und Passwort wird es an ein anderes Modul als senden Anmeldeinformationen. Aber im Code gibt es wahr oder pass. –

+0

Bitte korrigieren Sie den untenstehenden Code anhand des obigen Szenarios. Klasse PasswordCollection erstreckt Spezifikation { def "Sicheres Passwort für Data Driven" (String Schlüsselwort) { erwarten: if (Stichwort == Module) return encryptPassPass_word Wo: Module | Benutzername | Passwort –

Verwandte Themen