4

Scalamock を使用してアプリケーションでモックを使用しようとしていますが、モックしたいのはパラメーターを持つクラスです。scalamock doc を見たところ、クラスをモックするには、org.scalamock.annotation.mockいくつかの関数を使用するためにインポートする必要があると書かれています。私の参照は scalatest docsです。

「注釈」は存在しないようです...

私のsbt依存関係:

"org.scalamock" % "scalamock-scalatest-support_2.10" % "3.0.1" % "test"
"org.scalamock" % "scalamock-core_2.10" % "3.0.1"

1 つのライブラリを忘れたと思いますが、それが何かわかりません..

編集 :

テストコード:

import org.scalatest.FlatSpec
import org.scalamock.scalatest.MockFactory

class AuthenticationServiceTest extends FlatSpec with MockFactory
{
    "A user" should " be authenticated" in
    {
      val user = mock[User]
      val tenant = mock[Tenant]
      inSequence {
        (authenticate(tenant, user) _).expects.returning(true)
      }

      assert(authenticate(tenant, user))
    }
}

クラス :

class User (
  val username    : String,
  var password    : String,
  var firstname   : String,
  var lastname    : String,
  var isActivated : Boolean,
  val tenantId    : TenantId
             )
{}

class Tenant (
  val tenantId    : TenantId,
  val companyName : String,
  var fullAddress : String,
  var email       : String,
  var phone       : String,
  var isActivated : Boolean
               )
{}

テストする方法:

def authenticate(tenant: Tenant, user: User): Boolean = { 
//code... 
}

エラー :

[error] Unspecified value parameters username, password, firstname, ...
[error]       val user = mock[User]
[error]                      ^
[error] one error found
[error] (test:compile) Compilation failed
[error] Total time: 9 s, completed 17 oct. 2013 09:16:18
4

1 に答える 1