用POST进行scala测试

时间:2012-11-12 23:35:48

标签: scala mockito

有没有人知道如何在存储库函数(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指南进行测试,我将很高兴知道它。

1 个答案:

答案 0 :(得分:0)

chirpsRepository.save()无效的事实并不重要 - 您应该测试的是该方法是否被调用。

因此,不应尝试在其上定义模拟行为(使用when(...)),而应在调用verify()之后使用api.saveChirp()方法来确保它被正确委托。

Mockito documentation非常彻底 - 一旦您了解哪些协作者应该嘲笑哪些应该验证,那么您应该没有问题。