2016-08-26 1 views
1

私はハンドラを含むチェーンマネージャを持っています。私はそれがデフォルトで特定のクラスのハンドラを持っているかどうか確認したいと思います。どうやってするか?アサートリストにはSpockの与えられたクラスの要素が含まれています

def "contains few updaters on default"(){ 
    when: 
     def manager = new UpdateManager(); 
    then: 
     manager.getUpdaters().size() == 2; 
     //how to check that the list contains elements of classes 
     //OneThingUpdater and OtherThingUpdater 
} 

編集: 私は同じクラスの2つの要素から身を守るための回答からのコードを、改善してきたので、今、このようなものです:

答えて

3
def "contains few updaters on default"(){ 
    when: 
    def manager = new UpdateManager() 

    then: 
    def list = manager.getUpdaters() 
    list.size() == 2 
    list*.getClass().every { it in [OneThingUpdater, OtherThingUpdater] } 

    // or, just this 
    // Assuming the classes do not implement Map interface 
    // getClass() can be replaced with class 
    list*.class == [OneThingUpdater, OtherThingUpdater] 
} 
+0

我々ならば、それは通過します2人のOneThingUpdatersを持っていますが、インスピレーションのおかげで、私はexpectedUpdatersを "when"にリストアップし、見つかったすべての要素について期待リストから削除しました。 – Qbix

+0

@Qbix更新された回答を確認してください。 – dmahapatro

関連する問題