2

我是 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.

有什么建议么?

4

3 回答 3

5

尝试将 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
于 2016-11-14T20:56:30.853 回答
1

<3.3.0 的版本与 Scalatest 3+ 不兼容。

我建议更新到 scalamock 3.4.2(写作时的最新版本)。

你总能在 Maven Central 上找到最新版本。

此外,无需指定 scalamock-core,它会自动拉入。

于 2017-01-17T15:45:08.053 回答
0

scalacheck 3.2 依赖于 scalatest 2.1.3,但您使用的是 scalatest 3.0.0,因此它们不兼容。删除 scalatest 依赖将解决问题。

于 2016-12-22T08:00:41.497 回答