ScalaMock Build Status Scaladex

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)                         //
}

Full worked example

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:

For ScalaTest

libraryDependencies += "org.scalamock" %% "scalamock-scalatest-support" % "3.4.2" % Test
testCompile 'org.scalamock:scalamock-scalatest-support_2.12:3.4.2'

For Specs2:

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.