Кто-нибудь когда-нибудь создавал успешный тест Spock против разрыва соединения f5?
В моем правиле f5, если ситуация устраивает - мол плохой кукис, сбрасываю соединение
if { [HTTP::cookie exists "badCookie"] } {
if { not ([HTTP::cookie "badCookie"] matches_regex {^([A-Z0-9_\s]+)$}) } {
drop
}
}
Проверка этого вручную в браузере приводит к медленному, но возможному тайм-ауту, ограничение по времени зависит от браузера. Но вместо ручных тестов для каждого из правил f5 я хотел бы вместо этого включить свои тесты в нашу библиотеку функциональных тестов Spock.
Использование Spock, @Timeout() или @Timeout(value=5) просто приводит к бесконечному увеличению времени ожидания, например:
[spock.lang.Timeout] Method 'abc' has not yet returned - interrupting. Next try in 0.50 seconds.
[spock.lang.Timeout] Method 'abc' has not yet returned - interrupting. Next try in 1.00 seconds.
[spock.lang.Timeout] Method 'abc' has not yet returned - interrupting. Next try in 2.00 seconds.
[spock.lang.Timeout] Method 'abc' has not yet returned - interrupting. Next try in 4.00 seconds.
[spock.lang.Timeout] Method 'abc' has not yet returned - interrupting. Next try in 8.00 seconds.
[spock.lang.Timeout] Method 'abc' has not yet returned - interrupting. Next try in 16.00 seconds.
Использование метода waitFor в http://fbflex.wordpress.com/2010/08/25/geb-and-grails-tips-tricks-and-gotchas/ или https://github.com/hexaacta/weet/blob/master/weet/src/groovy/com/hexacta/weet/pages/AjaxPage.groovy также не закрывает метод, используя 5-секундную спецификацию.
Пример кода, использующего каждый из этих подходов (класс тайм-аута, метод тайм-аута и метод ожидания), находится по адресу https://gist.github.com/ledlogic/b152370b95e971b3992f
Мой вопрос: кто-нибудь нашел способ успешно запустить тест Spock, чтобы проверить, что правила f5 сбрасывают соединения?