在一次测试方法的时候,遇到了一些小困难。
自己写的方法如下,代码中调用了其他团队的api
def getLatestData(host: String, port: Int, currentDate: String) : Map(String, String) = {
val api = new otherTeamAPI
val latestData = api.getData(currentDate)
// 下面为具体的逻辑,此处省略
...
}
在unit test中想测试的时候发现,`otherTeamAPI` 这个api,会在底层调用http的call,但是我们的数据是在公司墙内的,所以unit test的时候就无法成功通过`new otherTeamAPI`来新建api对象。
怎么办呢?首先我想到了改写下自己的方法,然后后续用Mockito来模拟new otherTeamAPI得到的对象。
代码改写如下:
def getLatestData(currentDate: String)(implicit api: otherTeamAPI) : Map(String, String) = {
api.getData(currentDate)
...
}
引入Mockito的包
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version