我不熟悉scalatest和scalamock。这是我在我的sbt文件
中的内容name := "cakepattern"
version := "0.1"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
"org.scalatest" %% "scalatest" % "3.0.0" % "test",
"org.scalamock" %% "scalamock-core" % "3.1.1" % "test",
"org.scalamock" %% "scalamock-scalatest-support" % "3.1.1" % "test",
"org.scalacheck" %% "scalacheck" % "1.13.0" % "test"
)
这里是一个我想模拟的类
package config
import dto.User
import services.AuthServiceComponent
import org.scalatest.mockito.MockitoSugar._
import services.impl.DefaultUserAuthServiceComponent
trait MockAuthServiceComponent extends AuthServiceComponent{
val x = mock[AuthServiceLike]
type AuthService = x.type
override val userAuthService = x
}
当我做sbt test:compile
时,我得到以下错误
[error] missing or invalid dependency detected while loading class file 'MockitoSugar.class'.
[error] Could not access term mockito in package org,
[error] because it (or its dependencies) are missing. Check your build definition for
[error] missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.)
[error] A full rebuild may help if 'MockitoSugar.class' was compiled against an incompatible version of org.
[error] missing or invalid dependency detected while loading class file 'MockitoSugar.class'.
[error] Could not access type MockSettings in value org.mockito,
[error] because it (or its dependencies) are missing. Check your build definition for
[error] missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.)
[error] A full rebuild may help if 'MockitoSugar.class' was compiled against an incompatible version of org.mockito.
[error] missing or invalid dependency detected while loading class file 'MockitoSugar.class'.
[error] Could not access type Answer in value org.stubbing,
[error] because it (or its dependencies) are missing. Check your build definition for
[error] missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.)
[error] A full rebuild may help if 'MockitoSugar.class' was compiled against an incompatible version of org.stubbing.
[error] three errors found
[error] (test:compileIncremental) Compilation failed
我错过了什么?
[编辑]那么我之前遇到的问题解决了但是现在我得到了这个
Error:scalac: missing or invalid dependency detected while loading class file 'AbstractMockFactory.class'.
Could not access type NoArgTest in trait org.scalatest.Suite,
because it (or its dependencies) are missing. Check your build definition for
missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.)
A full rebuild may help if 'AbstractMockFactory.class' was compiled against an incompatible version of org.scalatest.Suite.
有什么建议吗?
尝试将Mockito添加到您的sbt文件:
libraryDependencies ++= Seq(
"org.scalatest" %% "scalatest" % "3.0.0" % Test,
"org.scalamock" %% "scalamock-core" % "3.1.1" % Test,
"org.scalamock" %% "scalamock-scalatest-support" % "3.1.1" % Test,
"org.scalacheck" %% "scalacheck" % "1.13.0" % Test,
"org.mockito" % "mockito-all" % "1.10.19" % Test
)
注意,这是一个简单的"%",而不是一个双引号(它是java依赖项)
这里的其他版本:https://mvnrepository.com/artifact/org.mockito/mockito-all如果1.10.19与您的代码库不兼容
编辑:不确定这对你的第二个问题有帮助,但在SBT控制台试试:
> clean
> compile
版本<3.3.0与Scalatest 3+不兼容。
我建议更新到scalamock 3.4.2(截至撰写本文时的最新版本)。
你总能在Maven Central上找到最新的版本。
同样,不需要指定scalamock-core,它会自动拉入。
scalacheck 3.2依赖于scalatest 2.1.3,但你使用的是scalatest 3.0.0,所以它们不兼容。删除scalatest依赖性将解决问题。