0

リポジトリ関数 (chirpsRepository.save) と API に実装した関数 (api.saveChirp) を比較して、テストが正しいかどうかを確認する方法を知っている人はいますか??

問題は、chirpsRepository.save が void 関数であり、それをテストする方法がわからないことです!!!

  "POST /api/chirps" should "return status Ok" in {
       new TestChirpsApi {
         println("AAAAAAAAAAAAAA")
         println(api.saveChirp(NewChirp("John Doe message")))
         when(chirpsRepository.save(ChirpRecord(new ObjectId("503df1850364e1967b576e5d"), "My message is here"))).thenReturn("Ok")
         println("BBBBBBBBBBBBBB")
         assert(api.saveChirp(NewChirp("John Doe message")) === "Ok")

      }
  }

助けてくれてありがとう、誰かがテスト用のscalaとmockitoガイドについて知っていれば、私はそれを知って喜んでいます.

4

1 に答える 1

0

無効であるという事実chirpsRepository.save()は実際には問題ではありません。テストする必要があるのは、そのメソッドが呼び出されるかどうかです。

そのため、(を使用して)モックされた動作を定義しようとするのではなく、メソッドを呼び出したにメソッドwhen(...)を使用して、メソッドが正しく委任されていることを確認する必要があります。verify()api.saveChirp()

Mockito のドキュメントは非常に詳細です。どのコラボレーターをモックする必要があり、どのコラボレーターを検証する必要があるかを理解すれ問題はありません。

于 2012-11-13T01:36:55.200 に答える