2016-08-06 38 views
0

zurück Ich bekomme seltsame Fehler in meinen Funktionstests.WithNewWindow() gibt MultipleCompilationErrorsException in Geb

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
Spec expression: 1: expecting '}', found 'assert' @ line 1, column 71. 
    }) { at(JobOfferDetailPage) assert des 

Mein Test sieht so aus. Ich klicke auf einen Link, der ein neues Fenster mit Details zum Stellenangebot öffnet. Dann möchte ich etwas Text auf der neuen Seite mit dem Seitenmuster bestätigen.

Test:

withNewWindow({ quickShowOption.click() }) { //TODO fix me 
        at(JobOfferDetailPage) 
        assert description.text() == 'some text' 
        assert requirements.text() == 'some text' 
        assert advatages.text() == 'some text.' 
        assert categories.text() == 'some text' 
        assert locality.text() == 'some text' 
       } 

Seite:

class JobOfferDetailPage extends Page { 
    static at = {$('#contactLabel').text() == 'Contact'} 

    static content = { 
     description {$('#jobOfferDescription')} 
     requirements {$('#jobOfferRequirements')} 
     advatages {$('#jobOfferAdvantages')} 
     jobOfferType {$('#jobOfferType')} 
     categories {$('#categories')} 
     locality {$('#locality')} 
     startDate {$('#startDate')} 
     requiredLanguages {$('#requiredLanguages')} 
    } 
} 

ich Kompilierungsfehler nach meinen Bedingungen geltend gemacht werden. Wenn ich in behauptetem Text einen Tippfehler mache, wird der Test normalerweise fehlschlagen, aber wenn er besteht, dann scheitert es mit diesem seltsamen Fehler.


Danke @Erdi.

Ich benutze spock, geb Versionen "0.13.1" und Selen Version "2.51.0".

Antwort

1

Wenn man an this comment in one of Geb's own tests glauben sollte, was vor einiger Zeit von mir geschrieben worden war, scheint dies tatsächlich eine Art Bug in Spock zu sein. Interessant ist, dass ich gerade diese Anweisung in einen expect-Block verschoben habe und es so lange funktioniert, wie die letzte Anweisung in der zweiten Closure, die an newWindow() übergeben wurde, als wahr ausgewertet wird. Das lässt mich denken, dass es ein Problem mit der alten Version von Spock und/oder Groovy ist. Welche Versionen der genannten Tools verwenden Sie?

Eine mögliche Abhilfe wäre Ihre Aussage von expect/then zu einer Bewegung, die nicht (given oder when) behauptet wie im Test I verbunden gezeigt.