我使用其他团队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)
如何在每次触发getData
函数时得到data
?我需要做一些新的模拟otherTeamAPI
吗?
1条答案
按热度按时间7d7tgy0s1#
你的代码是不可测试的,你必须能够给你的方法传递一个
OtherTeamAPI
的示例,这样你的产品代码使用一个真实的示例,而测试代码可以使用一个假的示例(一个“模拟”)。如何传递此示例取决于代码其余部分的结构:或者作为
getData
方法的参数,或者作为包含它的类的属性。第一个如下所示:
然后在测试中,您可以执行以下操作:
这是一个高层次的答案。您需要了解更多有关Mockito的信息,以确定您要执行的操作。