Używam specyfikacji2 jako mojej ramy testowej. Chcę zasymulować przypadek użycia, w którym actionA zwraca niepomyślną przyszłość. Lubię to:
val actionA = mock[ActionA]
val actionB = new ActionB(actionA)
actionA.doSomthing(x) returns Future.failed(new Exception("bla"))
try {
Await.result(actionB.doSomthing(request), 1 seconds)
}catch {
case e: Exception => println("exception caught: " + e);
}
Problem polega na tym, że moje wyjście testu z tym wyjątkiem, jeśli go nie łapię, nie ma lepszego sposobu na przełknięcie wyjątków? Czy istnieje lepszy sposób na przetestowanie takiego scenariusza?
Dzięki!
Odpowiedzi:
4 dla odpowiedzi № 1Await.result(actionB.doSomething(request), 1 seconds) must throwA[Exception]
przez https://etorreborre.github.io/specs2/guide/SPECS2-3.6.5/org.specs2.guide.Matchers.html -> Wyjątek