final case class Spec[-R, +E, +L, +T](caseValue: SpecCase[R, E, L, T, Spec[R, E, L, T]]) extends Product with Serializable
A Spec[R, E, L, T] is the backbone of _ZIO Test_. Every spec is either a
suite, which contains other specs, or a test of type T. All specs are
annotated with labels of type L, require an environment of type R and
may potentially fail with an error of type E.
- Self Type
- Spec[R, E, L, T]
- Alphabetic
- By Inheritance
- Spec
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def @@[R0 <: R1, R1 <: R, E0, E1, E2 >: E0 <: E1, S0, S1, S >: S0 <: S1](aspect: TestAspect[R0, R1, E0, E1, S0, S1])(implicit ev1: <:<[E, TestFailure[E2]], ev2: <:<[T, TestSuccess[S]]): ZSpec[R1, E2, L, S]
Syntax for adding aspects.
Syntax for adding aspects.
test("foo") { assert(42, equalTo(42)) } @@ ignore
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- final def bimap[E1, T1](f: (E) => E1, g: (T) => T1)(implicit ev: CanFail[E]): Spec[R, E1, L, T1]
Returns a new spec with remapped errors and tests.
- val caseValue: SpecCase[R, E, L, T, Spec[R, E, L, T]]
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def distinguish: Spec[R, E, Either[L, L], T]
Returns a new spec with the suite labels distinguished by
Left, and the test labels distinguished byRight. - final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def exists[R1 <: R, E1 >: E](f: (SpecCase[R, E, L, T, Any]) => ZIO[R1, E1, Boolean]): ZIO[R1, E1, Boolean]
Determines if any node in the spec is satisfied by the given predicate.
- final def filterLabels(f: (L) => Boolean): Option[Spec[R, E, L, T]]
Returns a new Spec containing only tests/suites with labels satisfying the specified predicate.
- final def filterTestLabels(f: (L) => Boolean): Option[Spec[R, E, L, T]]
Returns a new Spec containing only tests with labels satisfying the specified predicate.
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def fold[Z](f: (SpecCase[R, E, L, T, Z]) => Z): Z
Folds over all nodes to produce a final result.
- final def foldM[R1 <: R, E1, Z](defExec: ExecutionStrategy)(f: (SpecCase[R, E, L, T, Z]) => ZIO[R1, E1, Z]): ZIO[R1, E1, Z]
Effectfully folds over all nodes according to the execution strategy of suites, utilizing the specified default for other cases.
- final def forall[R1 <: R, E1 >: E](f: (SpecCase[R, E, L, T, Any]) => ZIO[R1, E1, Boolean]): ZIO[R1, E1, Boolean]
Determines if all node in the spec are satisfied by the given predicate.
- final def foreach[R1 <: R, E1, A](failure: (Cause[E]) => ZIO[R1, E1, A], success: (T) => ZIO[R1, E1, A]): ZIO[R1, Nothing, Spec[R1, E1, L, A]]
Iterates over the spec with the sequential strategy as the default, and effectfully transforming every test with the provided function, finally reconstructing the spec with the same structure.
- final def foreachExec[R1 <: R, E1, A](defExec: ExecutionStrategy)(failure: (Cause[E]) => ZIO[R1, E1, A], success: (T) => ZIO[R1, E1, A]): ZIO[R1, Nothing, Spec[R1, E1, L, A]]
Iterates over the spec with the specified default execution strategy, and effectfully transforming every test with the provided function, finally reconstructing the spec with the same structure.
- final def foreachPar[R1 <: R, E1, A](failure: (Cause[E]) => ZIO[R1, E1, A], success: (T) => ZIO[R1, E1, A]): ZIO[R1, Nothing, Spec[R1, E1, L, A]]
Iterates over the spec with the parallel strategy as the default, and effectfully transforming every test with the provided function, finally reconstructing the spec with the same structure.
- final def foreachParN[R1 <: R, E1, A](n: Int)(failure: (Cause[E]) => ZIO[R1, E1, A], success: (T) => ZIO[R1, E1, A]): ZIO[R1, Nothing, Spec[R1, E1, L, A]]
Iterates over the spec with the parallel (
n) strategy as the default, and effectfully transforming every test with the provided function, finally reconstructing the spec with the same structure. - final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def mapError[E1](f: (E) => E1)(implicit ev: CanFail[E]): Spec[R, E1, L, T]
Returns a new spec with remapped errors.
- final def mapLabel[L1](f: (L) => L1): Spec[R, E, L1, T]
Returns a new spec with remapped labels.
- final def mapTest[T1](f: (T) => T1): Spec[R, E, L, T1]
Returns a new spec with remapped tests.
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def only[S, E1](s: String)(implicit ev1: <:<[L, String], ev2: <:<[E, TestFailure[E1]], ev3: <:<[T, TestSuccess[S]]): ZSpec[R, E1, String, S]
Runs only tests whose labels (which must be strings) contain the given substring.
Runs only tests whose labels (which must be strings) contain the given substring. If a suite label contains the specified string all specs in that suite will be included in the resulting spec.
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- final def provideManaged[E1 >: E](managed: Managed[E1, R])(implicit ev: NeedsEnv[R]): Spec[Any, E1, L, T]
Uses the specified
Managedto provide each test in this spec with its required environment. - final def provideManagedShared[E1 >: E](managed: Managed[E1, R])(implicit ev: NeedsEnv[R]): Spec[Any, E1, L, T]
Uses the specified
Managedonce to provide all tests in this spec with a shared version of their required environment.Uses the specified
Managedonce to provide all tests in this spec with a shared version of their required environment. This is useful when the act of creating the environment is expensive and should only be performed once. - final def provideSomeManaged[R0, E1 >: E](managed: ZManaged[R0, E1, R])(implicit ev: NeedsEnv[R]): Spec[R0, E1, L, T]
Uses the specified
ZManagedto provide each test in this spec with part of its required environment. - final def provideSomeManagedShared[R0, E1 >: E](managed: ZManaged[R0, E1, R])(implicit ev: NeedsEnv[R]): Spec[R0, E1, L, T]
Uses the specified
ZManagedonce to provide all tests in this spec with a shared version of part of their required environment.Uses the specified
ZManagedonce to provide all tests in this spec with a shared version of part of their required environment. This is useful when the act of creating the environment is expensive and should only be performed once. - final def size: ZIO[R, E, Int]
Computes the size of the spec, i.e.
Computes the size of the spec, i.e. the number of tests in the spec.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- final def transform[R1, E1, L1, T1](f: (SpecCase[R, E, L, T, Spec[R1, E1, L1, T1]]) => SpecCase[R1, E1, L1, T1, Spec[R1, E1, L1, T1]]): Spec[R1, E1, L1, T1]
Transforms the spec one layer at a time.
- final def transformAccum[R1, E1, L1, T1, Z](z0: Z)(f: (Z, SpecCase[R, E, L, T, Spec[R1, E1, L1, T1]]) => (Z, SpecCase[R1, E1, L1, T1, Spec[R1, E1, L1, T1]])): ZIO[R, E, (Z, Spec[R1, E1, L1, T1])]
Transforms the spec statefully, one layer at a time.
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()