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
}
редактировать: я улучшил код от ответа, для защиты от двух элементов одного и того же класса, так как это сейчас:
def "contains few updaters on default"(){
setup:
def expectedUpdaters = [OneThingUpdater, OtherThingUpdater]
when:
def manager = new UpdateManager();
then:
def list = manager.getUpdaters()
list.size() == 2;
list.every {
it.class in expectedUpdaters
expectedUpdaters.remove(it.class)
}
}
пройдет, если мы есть два OneThingUpdaters, но, спасибо за вдохновение, я изменил его, чтобы ожидать, что список «Ожидание» будет «когда», а на каждом найденном элементе я удалю его из ожидаемого списка. – Qbix
@ Qbix проверить обновленный ответ. – dmahapatro