相关疑难解决方法(0)

如何使用蛋糕模式的模拟

我有以下课程:

class LinkUserService() {

  //** cake pattern **
  oauthProvider: OAuthProvider =>
  //******************

  def isUserLinked(userId: String, service: String) = {
    val cred = oauthProvider.loadCredential(userId)
    cred != null

  }

  def linkUserAccount(userId: String, service: String): (String, Option[String]) = {
    if (isUserLinked(userId, service)) {
      ("SERVICE_LINKED", None)
    } else {
      val authUrl = oauthProvider.newAuthorizationUrl
      ("SERVICE_NOT_LINKED", Some(authUrl))
    }
  }

  def setLinkAuthToken(userId: String, service:String, token:String):String = {
    oauthProvider.createAndStoreCredential(userId, token)
  }

}
Run Code Online (Sandbox Code Playgroud)

通常我会在生产中使用这个类,如下所示:

val linkService = LinkUserService with GoogleOAuthProvider

当涉及到测试时,我想oauthProvider用一个模拟替换,这样我的单元测试已经训练过这样的响应:oauthProvider.loadCredential("nobody") returns null.这可能吗?如果是这样,我将如何设置我的单元测试呢?

unit-testing scala mockito cake-pattern

8
推荐指数
1
解决办法
1269
查看次数

标签 统计

cake-pattern ×1

mockito ×1

scala ×1

unit-testing ×1