Secciones

Testeando condiciones asíncronas con Spock

Inicio » Artículos » Testeando condiciones asíncronas con Spock
La categoría del artículo es
Escrito el 19 June 2014, 16:25


Testear condiciones asíncronas con Spock es sencillo utilizando por ejemplo las PollingConditions

Gracias a ellas es posible retrasar la comprobación de determinadas condiciones en un test con Spock.


Testear condiciones asíncronas con Spock es sencillo utilizando por ejemplo las PollingConditions

Gracias a ellas es posible retrasar la comprobación de determinadas condiciones en un test con Spock. Para muestra, un botón.

Groovy:

class MyClass {
    def method() {
        def client = vertx.createHttpClient(host:baseUri, port:port, SSL:SSL)
        client.getNow("/myuri") { resp ->
            resp.bodyHandler { r ->
                processResponse()
            }
        }
    }

    private processResponse() {
        println "Do something"
    }
}

 

Groovy:
def "Testing with PollingConditions"() {
    given:
        def myClassInstance = new MyClass()
    and:
        def callsProcessResponse = 0
        myClassInstance.metaClass.processResponse = {
            callsProcessResponse++
        }
    when:
        myClassInstance.method()
    then:
        conditions.eventually {
            assert callsProcessResponse >= 150
        }
}

Es importante incluir las condiciones dentro del bloque eventually precedido de asserts.


Espero tus comentarios...

Ayuda Textile