2016-08-06 12 views
0

私のgeb機能テストでは奇妙なエラーが発生しています。WithNewWindow()はGebでMultipleCompilationErrorsExceptionを返します

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

私のテストは次のようになります。求人情報の詳細が表示された新しいウィンドウを開くリンクをクリックします。 Page Patternを使用して新しいページにテキストをアサートするよりも、

テスト:

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

ページ:

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')} 
    } 
} 

私の条件がアサートされた後、私はコンパイルエラーが発生します。アサートされたテキストの入力ミスがテストよりも正常に行われますが、合格した場合は、この奇妙なエラーで失敗します。


@Erdiありがとうございました。

私はspock、gebバージョン "0.13.1"とセレンバージョン "2.51.0"を使用します。

答えて

1

私がしばらく前に書いたものではなかったthis comment in one of Geb's own testsを信じるなら、これは実際にSpockの何らかのバグのようです。興味深いのは、私は今、そのステートメントをexpectブロックに移動し、newWindow()に渡された2番目のクロージャの最後のステートメントがtrueに評価されている限り動作するということです。これはSpockやGroovyの古いバージョンの問題だと思っています。前述のツールのどのバージョンを使用していますか?

一つの可能​​な回避策は、私がリンクされ、テストのように主張していないもの(givenまたはwhen)にexpect/thenからあなたの文を移動するだろう。

関連する問題