ScalaMock
Native Scala mocking. For Scala 2.10, 2.11 and 2.12.
Official website: http://scalamock.org/
Examples
Expectations-First Style
def testTurtle {
val m = mock[Turtle] // Create mock Turtle object
(m.setPosition _).expects(10.0, 10.0) //
(m.forward _).expects(5.0) // Set expectations
(m.getPosition _).expects().returning(15.0, 10.0) //
drawLine(m, (10.0, 10.0), (15.0, 10.0)) // Exercise System Under Test
}
Record-then-Verify (Mockito) Style
def testTurtle {
val m = stub[Turtle] // Create stub Turtle
(m.getPosition _).when().returns(15.0, 10.0) // Setup return values
drawLine(m, (10.0, 10.0), (15.0, 10.0)) // Exercise System Under Test
(m.setPosition _).verify(10.0, 10.0) // Verify expectations met
(m.forward _).verify(5.0) //
}
Features
- Fully typesafe
- Full support for Scala features such as:
- Polymorphic (type parameterised) methods
- Operators (methods with symbolic names)
- Overloaded methods
- Type constraints
- ScalaTest and Specs2 integration
Downloading
Download from Maven Central or JCenter (synced via Bintray)
To use ScalaMock in your Tests add the following to your project file:
ScalaTest
For- sbt:
libraryDependencies += "org.scalamock" %% "scalamock-scalatest-support" % "3.4.2" % Test
testCompile 'org.scalamock:scalamock-scalatest-support_2.12:3.4.2'
Specs2:
For- sbt:
libraryDependencies += "org.scalamock" %% "scalamock-specs2-support" % "3.4.2" % Test
testCompile 'org.scalamock:scalamock-specs2-support_2.12:3.4.2'
Documentation
Future Plans
Check our roadmap.
Acknowledgements
YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.