I'm using ScalaTest and ScalaMock and I run into an exception preventing my test to even run.
An exception or error caused a run to abort:
java.lang.String.lines()Ljava/util/stream/Stream;
I'm using Scala 2.13, JDK 8 and the latest versions of the frameworks: ScalaTest 3.0.8 and ScalaMock 4.3.0.
My usage of the mocking framework is something like:
import org.scalamock.scalatest.MockFactory
class AcceptanceTest extends MockFactory {
val tokenHandler = mock[TokenHandler]
tokenHandler.verify()
}
I'm not explicitly invoking the method lines()
, nor I have found it invoked by verify()
. The problem only comes if I call verify()
though.
This is the stacktrace of the error:
java.lang.NoSuchMethodError: java.lang.String.lines()Ljava/util/stream/Stream;
at org.scalamock.handlers.Handlers$$anonfun$toString$1.apply(Handlers.scala:35)
at org.scalamock.handlers.Handlers$$anonfun$toString$1.apply(Handlers.scala:34)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
at scala.collection.immutable.List.foreach(List.scala:392)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:45)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
at scala.collection.AbstractTraversable.map(Traversable.scala:104)
at org.scalamock.handlers.Handlers.toString(Handlers.scala:34)
at java.lang.String.valueOf(String.java:2994)
at java.lang.StringBuilder.append(StringBuilder.java:131)
at scala.StringContext.standardInterpolator(StringContext.scala:125)
at scala.StringContext.s(StringContext.scala:95)
at org.scalamock.context.MockContext$class.errorContext(MockContext.scala:48)
...
at org.scalatest.tools.SuiteRunner.run(SuiteRunner.scala:45)
at org.scalatest.tools.Runner$$anonfun$doRunRunRunDaDoRunRun$1.apply(Runner.scala:1349)
at org.scalatest.tools.Runner$$anonfun$doRunRunRunDaDoRunRun$1.apply(Runner.scala:1343)
at scala.collection.immutable.List.foreach(List.scala:392)
at org.scalatest.tools.Runner$.doRunRunRunDaDoRunRun(Runner.scala:1343)
at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1012)
at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1011)
at org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:1509)
at org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:1011)
at org.scalatest.tools.Runner$.run(Runner.scala:850)
at org.scalatest.tools.Runner.run(Runner.scala)
Any idea on how to get rid of it?