我正在嘗試通過檢索簡單的用戶資訊來測驗資料庫參考,我嘗試模擬資料庫參考并在其上應用 mockito 邏輯,但由于某種原因它無法正常作業,傳遞失敗,如果有人使用 mockito,我仍然是新手可以幫助謝謝你,你能告訴我如何用 mockito 模擬 addValuelistener
- 這是我的代碼
ServiceLocator
.db_reference
.child("Users")
.child(ServiceLocator.auth.currentUser!!.uid)
.addListenerForSingleValueEvent(object : ValueEventListener{
override fun onDataChange(snapshot: DataSnapshot) {
if(snapshot.exists()){
/// getting data
}
}
override fun onCancelled(error: DatabaseError) {
}
})
- 這是測驗代碼
@Test
fun h_testCaseGetUserInfoFromDB(){
val firebaseMock = mock(FirebaseAuth::class.java)
val databaseMock = mock(DatabaseReference::class.java)
ServiceLocator.auth = firebaseMock
ServiceLocator.db_reference = databaseMock
`when`(databaseMock.child("Users").child(firebaseMock.currentUser!!.uid).get()).thenReturn(
isNotNull())
}
uj5u.com熱心網友回復:
請考慮以下關于模擬的說明
Mocks 不是一個真正的實作,并且對它一無所知。
它主要用于檢查某個動作是否會發生,即斷言某個函式已接收到某個引數,但不保證該函式在實際實作中會成功執行。
另請注意,它不會像實際實作那樣回傳任何值。
因此,在您的代碼中,您正在測驗您的真實 Firebase 中是否存在某些資料。所以你需要用真正的 firebase 實體進行測驗,Mocks 在這里沒有作業要做。所以不要使用它
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/407196.html
標籤:
