我正在使用RequestsScala模块发出HTTP请求,如下所示:
object AEMUtility {
....
def getJWTToken() {
....
val response = requests.post(
s"$imsExp/ims/exchange/jwt/",
headers = Map(
"Content-Type" -> "application/x-www-form-urlencoded"
),
params = Map(
"client_id" -> clientId,
"client_secret" -> clientSecret,
"jwt_token" -> token
)
)
}
}
我想通过以下方式模拟POST请求函数来编写单元测试:检查Mock函数中传递的参数并返回伪响应。
有没有办法在Scala中模拟安装的依赖关系?
我试过:
"authorize" should "return JWT token if request is valid" in {
val postMock = mock[requests.post]
}
但这给了我错误:Cannot resolve symbol post
1条答案
按热度按时间avwztpqn1#
您得到的错误是因为
requests.post
是Requester的一个示例(参见源代码),mock
需要一个类型参数。您不能将对象传递给它,您可以模拟它的类、特征等。因此,您可能应该尝试模拟Case类:或者
BaseSession
性状,包含了post
、get
等方法。或者
Session
Case类,它是BaseSession
特征的实现。不管怎样,我不确定,图书馆对我来说并不适合考试。