2017-02-18 1 views
0

Ich habe eine Funktion in meinem Dienst, die einige jvalue-Daten nimmt, extrahiert und einige Modelle zurückgibt.Wie bekomme ich den Fehler, der in meinem Test in einem anderen Klassenbereich auftritt?

und in meinem Test möchte ich diese Funktion mit schlechten Daten aufrufen und sehen, dass die Extraktion fehlschlägt. so habe ich versucht:

val res = myService.getInstanceOf(badData, "person") 

res shouldBe a[MappingException] 

und es hat nicht funktioniert, weil in meiner Test-Klasse mir Injektion den Service und mit der Servicefunktion, so dass der Ausfall geschieht im Dienst und ich den Fehler nicht immer . Ich komme nicht einmal zu res shouldBe a[MappingException], es schlägt fehl, wenn ich die Funktion anrufe.

Wie mache ich das richtig?

Antwort

1

arbeiten Sie thrownBy die Ausnahme speichern können:

val res = the [MappingException] thrownBy myService.getInstanceOf(badData, "person") 

oder direkt überprüfen:

a [MappingException] should be thrownBy myService.getInstanceOf(badData, "person") 

um weitere Informationen zu den documentation See.

0

sollte die unter

import scala.util.{Failure, Try} 
val Failure(th) = Try(myService.getInstanceOf(badData, "person")) 
res shouldBe a[MappingException] 
Verwandte Themen