org.specs2.control

Type members

Classlikes

case class ActionException(warnings: List[String], message: Option[String], throwable: Option[Throwable]) extends Exception

This exception class is used when an Action is transformed to a Task to avoid losing information

This exception class is used when an Action is transformed to a Task to avoid losing information

object Actions

This trait provides simple a way to print out any object to the console:

This trait provides simple a way to print out any object to the console:

"this string".pp must_== "this string"

will print 'this string' and pass it to the rest of the expectation

Companion:
object
object Debug extends Debug
Companion:
class

default filter for specs2 runs

default filter for specs2 runs

This trait provides methods to catch exceptions and transform them into values which can be passed to further computations.

This trait provides methods to catch exceptions and transform them into values which can be passed to further computations.

It uses the facilities found in the scala.util.control.Exception object while providing a more concise api on some use cases.

See also:

org.specs2.control.ExceptionsSpec for examples

Companion:
object
object Exceptions extends Exceptions
Companion:
class
object Executable

Execute external commands

Execute external commands

This trait is used primarily to change the junit behavior depending on the execution environment

This trait is used primarily to change the junit behavior depending on the execution environment

Companion:
object
Companion:
class
trait Functions

This trait provides utility methods for functions

This trait provides utility methods for functions

Companion:
object
object Functions extends Functions
Companion:
class

This trait describes something which has a stackTrace with:

This trait describes something which has a stackTrace with:

  • a list of stacktrace element

This is used to provide a common interface to execute.Failure and execute.Error

This trait is used to abuse method overloading and allow some of the methods in specs2 DSL to be applicable to various parameters.

This trait is used to abuse method overloading and allow some of the methods in specs2 DSL to be applicable to various parameters.

For example in a mutable specification, the >> method is overloaded for lots of different arguments:

  • result
  • function of the Environment
  • function of the Command line
  • ...
Companion:
object
case class IncludeExcludeStackTraceFilter(include: Seq[String], exclude: Seq[String]) extends StackTraceFilter

Implementation of the StackTraceFilter trait with a list of include/exclude patterns

Implementation of the StackTraceFilter trait with a list of include/exclude patterns

Companion:
object

Factory object to build a stack trace filter from include/exclude expressions:

Factory object to build a stack trace filter from include/exclude expressions:

.*specs2 ==> include .*specs2 traces .specs2/scala. ==> include .specs2 traces, exclude scala. traces .*specs2,scala/scalaz,eclipse ==> include .*specs2,scala traces, exclude scalaz and eclipse traces

Companion:
class
class LazyParameter[+T](v: () => T)

class holding a value to be evaluated lazily

class holding a value to be evaluated lazily

This trait can be used to allow some function to be called with varargs, with values being evaluated lazily:

This trait can be used to allow some function to be called with varargs, with values being evaluated lazily:

 def method[T](values: LazyParameter[T]*) = {
   values.toStream // use the toStream method to consume the values lazily
 }
 // usage
 method(exp1, exp2, exp3)

Note that the values are really evaluated once, unlike a by-name parameter.

Companion:
object
Companion:
class
case class LazyValue[T](t: () => T)

This class simply encapsulates a lazy value which will be only evaluated once

This class simply encapsulates a lazy value which will be only evaluated once

See also:

org.specs2.specification.process.RandomSequentialExecution for an example of use

case class NamedThreadFactory(namePrefix: String, group: ThreadGroup, priority: Int) extends ThreadFactory

This factory creates named threads which can be prefixed by "specs2" to track the threads used by specs2 for the specification execution

This factory creates named threads which can be prefixed by "specs2" to track the threads used by specs2 for the specification execution

Contributed by @jedws

trait NoDebug extends Debug

Use this trait to disable the pp method on objects

Use this trait to disable the pp method on objects

This filter doesn't do anything

This filter doesn't do anything

Syntactic sugar to execute an action a given number of times

Syntactic sugar to execute an action a given number of times

Companion:
object
Companion:
class
object Operations
Companion:
object
object Properties extends Properties
Companion:
class
case class Property[T](value: () => Option[T], evaluated: Boolean, evaluatedValue: Option[T])

This class represents values which are evaluated lazily and which may even be missing.

This class represents values which are evaluated lazily and which may even be missing.

It has Option-like function and can be also converted to an Either object

Companion:
object
object Property

Companion object to create properties with possibly no initial value

Companion object to create properties with possibly no initial value

Companion:
class

This trait filters an Exception stacktrace

This trait filters an Exception stacktrace

Companion:
object
Companion:
class

Utility methods to determine the origin of the execution of the current code

Utility methods to determine the origin of the execution of the current code

Companion:
object
object Stacktraces extends Stacktraces
Companion:
class
object Throwables

This trait adds some utility methods to Throwable objects.

This trait adds some utility methods to Throwable objects.

Companion:
object
object Throwablex extends Throwablex
Companion:
class
case class Times(n: Int)
case class TraceLocation(path: String, fileName: String, className: String, methodName: String, lineNumber: Int)
Companion:
object
Companion:
class
object Use

Utility object to show a parameter as used In particular this is useful to avoid warnings with ImplicitParameters

Utility object to show a parameter as used In particular this is useful to avoid warnings with ImplicitParameters

case class UserException(message: String, throwable: Throwable) extends Exception

This exception class is used to notify the user of instantiation errors

This exception class is used to notify the user of instantiation errors

implicit class actionOps[T](action: Action[T])
implicit class ioOperationToOption[T](operation: Operation[T])
implicit class operationOps[T](operation: Operation[T])

Types

type Action[A] = Eff[ActionStack, A]
type AsyncFold[A, B] = Fold[Action, A, B]
type AsyncSink[A] = Fold[Action, A, Unit]
type AsyncTransducer[A, B] = (ActionStack, A) => B
type Logger = String => Unit

Actions logging

Actions logging

Value members

Concrete methods

def attemptExecuteOperation[A](operation: Operation[A], printer: String => Unit): Either[Throwable, (Either[Error, A], List[String])]
def emitAsync[A](as: A*): AsyncStream[A]
def emitAsyncDelayed[A](a: A): AsyncStream[A]
def executeOperation[A](operation: Operation[A], printer: String => Unit): (Either[Error, A], List[String])
def runOperation[A](operation: Operation[A], printer: String => Unit): Either[Error, A]
def warnAndFail[R, A](message: String, failureMessage: String)(implicit m1: Member[Warnings, R], m2: Member[ErrorOrOk, R]): Eff[R, A]

warn the user about something that is probably wrong on his side, this is not a specs2 bug, then fail to stop all further computations

warn the user about something that is probably wrong on his side, this is not a specs2 bug, then fail to stop all further computations

Concrete fields

lazy val consoleLogging: String => Unit
lazy val noLogging: String => Unit

Implicits

Implicits

final implicit def actionOps[T](action: Action[T]): actionOps[T]
implicit val idToAction: NaturalTransformation[Id, Action]
final implicit def ioOperationToOption[T](operation: Operation[T]): ioOperationToOption[T]

This implicit allows an Operation[result] to be used inside an example.

This implicit allows an Operation[result] to be used inside an example.

final implicit def operationOps[T](operation: Operation[T]): operationOps[T]
implicit def operationToAction[A](operation: Operation[A]): Action[A]
implicit def operationToActionNat[A]: NaturalTransformation[Operation, Action]