Я участвую в проигрышной битве против юнит-тестов Спока в моем приложении Grails.Я хочу протестировать асинхронное поведение, и для того, чтобы познакомиться со BlockingVariable
Споком, я написал этот простой пример теста.
void "test a cool function of my app I will not tell you about"() {
given:
def waitCondition = new BlockingVariable(10000)
def runner = new Runnable() {
@Override
void run() {
Thread.sleep(5000)
waitCondition.set(true)
}
}
when:
new Thread(runner)
then:
true == waitCondition.get()
}
К сожалению, это нехорошо, потому что в противном случае это закончится.Когда я устанавливаю точку останова на Thread.sleep()
и отлаживаю тест, эта точка останова никогда не срабатывает.Чего мне не хватает?