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