有没有人知道如何在存储库函数(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指南进行测试,我将很高兴知道它。
答案 0 :(得分:0)
chirpsRepository.save()
无效的事实并不重要 - 您应该测试的是该方法是否被调用。
因此,不应尝试在其上定义模拟行为(使用when(...)
),而应在调用verify()
之后使用api.saveChirp()
方法来确保它被正确委托。
Mockito documentation非常彻底 - 一旦您了解哪些协作者应该嘲笑哪些应该验证,那么您应该没有问题。