Skip to content

eed3si9n/expecty

 
 

Repository files navigation

Expecty - Power Assertions for Scala

Expecty brings power assertions as known from Groovy and Spock to the Scala language. It is a micro library that aims to do one thing well.

License and Credits

Expecty was originally written by Peter Niederwieser, author of Spock.

Expecty is licensed under the Apache 2 license.

Setup

expecty Scala version support

libraryDependencies += "com.eed3si9n.expecty" %% "expecty" % "<version (see above)>" % Test
Scala Version JVM JS (1.x) Native (0.4.x)
3.1.x
2.13.x
2.12.x
2.11.x

Code Examples

Welcome to Scala 2.12.15 (OpenJDK 64-Bit Server VM, Java 1.8.0_212).
Type in expressions for evaluation. Or try :help.

scala> import com.eed3si9n.expecty.Expecty.assert
import com.eed3si9n.expecty.Expecty.assert

scala> case class Person(name: String = "Fred", age: Int = 42) {
     |   def say(words: String*) = words.mkString(" ")
     | }
defined class Person

scala> val person = Person()
person: Person = Person(Fred,42)

scala> // Passing expectations

scala> assert(person.name == "Fred")

scala> assert(person.age * 2 == 84)

scala> assert(person.say("Hi", "from", "Expecty!") == "Hi from Expecty!")

scala> // Failing expectation

scala> val word1 = "ping"
word1: String = ping

scala> val word2 = "pong"
word2: String = pong

scala> assert(person.say(word1, word2) == "pong pong")
java.lang.AssertionError: assertion failed

assert(person.say(word1, word2) == "pong pong")
       |      |   |      |      |
       |      |   ping   pong   false
       |      ping pong
       Person(Fred,42)

  at com.eed3si9n.expecty.Expecty$ExpectyListener.expressionRecorded(Expecty.scala:35)
  at com.eed3si9n.expecty.RecorderRuntime.recordExpression(RecorderRuntime.scala:39)
  ... 36 elided

scala> assert(person.age * 2 == 73, "age is not right")
java.lang.AssertionError: assertion failed: age is not right

assert(person.age * 2 == 73, "age is not right")
       |      |   |   |
       |      42  84  false
       Person(Fred,42)

  at com.eed3si9n.expecty.Expecty$ExpectyListener.expressionRecorded(Expecty.scala:35)
  at com.eed3si9n.expecty.RecorderRuntime.recordExpression(RecorderRuntime.scala:39)
  ... 36 elided

Further Examples

Have a look at ExpectySpec.scala and other specs in the same directory.

About

Power assertions (as known from Groovy and Spock) for the Scala language.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Scala 100.0%