我正在使用其他團隊 api(我們將其命名為 otherTeamAPI)來呼叫資料,因此在我的函式中,我的代碼如下所示:
def getData(host:String, port:Int, date: String): Map[String, String] = {
val data = new otherTeamAPI(host,port)
val latestData = data.getLatestData(date)
}
有人可以教我如何使用 Mockito 做同樣的事情來data進行單元測驗嗎?我不確定是否使用類似下面的東西new an api:
val otherTeamAPI = Mock[otherTeamAPI]
otherTeamAPI.getLatestData(date)
data每次觸發我的功能時如何獲取getData?我需要做一些新的模擬otherTeamAPI嗎?
uj5u.com熱心網友回復:
您按原樣撰寫的代碼是不可測驗的。您必須能夠向您的方法傳遞一個實體,OtherTeamAPI以便您的生產代碼使用真實實體,但測驗代碼可以使用假實體(“模擬”)。
如何傳遞此實體取決于其余代碼的結構:作為此方法的引數getData或作為包含它的類的屬性。
第一個看起來像這樣:
def getData(api: OtherTeamApi, date: String): Map[String, String] = {
val latestData = api.getLatestData(date)
// ...
}
然后在您的測驗中,您可以執行以下操作:
val fakeApi = mock[OtherTeamAPI]
when(fakeApi.getLatestData(anyString())).the return(...)
val result = getData(fakeApi, ...)
// Then assert on result
這是一個高水平的答案。您需要了解有關 Mockito 的更多資訊,以了解您想要做什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/493051.html
