2017-02-18 5 views
0

私はいくつかのjvalueデータを取り出し、それを抽出していくつかのモデルを返す関数を私のサービスに持っています。テストで別のクラススコープで発生する障害を取得するにはどうすればよいですか?

def getInstanceOf(data: JValue, aType: String): Living = aType match { 
    case "person" => data.extract[Person] 
    case "animal" => data.extract[Animal] 
} 

私のテストでは、この関数を不正なデータで呼び出して、抽出が失敗することを確認します。私はサービスを注入し、サービス機能を使用して、その障害がサービス中に起こると、私はエラーを取得していないよだから、私のテストクラスでは、

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

res shouldBe a[MappingException] 

、それは動作しませんでした:私は試してみました。私はres shouldBe a[MappingException]にも到達していない、私は関数を呼び出すときに失敗します。

どうすればよいですか?

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

を直接それをチェック:

答えて

1

あなたは例外を保存するためにthrownByを使用することができます動作するはず

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

は詳細についてはdocumentationを参照してください。

0

以下

import scala.util.{Failure, Try} 
val Failure(th) = Try(myService.getInstanceOf(badData, "person")) 
res shouldBe a[MappingException] 
関連する問題