2013-10-02 5 views
7

meine Art, Futures zu testen, war Value1. Ich bin zu play2.2 migriert. Ich habe es herausgefunden, meine gewohnte Art zu testen ist weg. @ scala.deprecated ("Verwenden Sie stattdessen scala.concurrent.Promise.", "2.2")Play 2.2 - specs2 - Wie testet man Futures in Play 2.2?

Jede Hilfe würde sehr geschätzt werden.

Oliver

Antwort

11

Sie können die PlaySpecification Eigenschaft implementieren, wie in der documentation beschrieben. Diese Eigenschaft bietet eine Methode erwarten. Sie können das Standard-Zeitlimit auch überschreiben.

import akka.util.Timeout 
import scala.concurrent.duration._ 

class FooSpec extends PlaySpecification { 
    override implicit def defaultAwaitTimeout: Timeout = 20.seconds 

    "foo" should { 
    "handle futures" { 
     val result = await(Future(true)) 

     result should beTrue 
    } 
    } 
} 
2

Sie können auch das Standard-Timeout für ein einzelnes Test-Szenario außer Kraft setzen, etwa so:

import akka.util.Timeout 
import scala.concurrent.duration._ 

class FooSpec { 
    "foo" should { 
    "handle futures" with DefaultAwaitTimeout { 
     override implicit def defaultAwaitTimeout: Timeout = 20.seconds 
     val result = await(Future(true)) 

     result should beTrue 
    } 
    } 
} 

Um Ihren Code an einer bestimmten Stelle zu stoppen, verwendet

Thread.sleep(milliseconds)