org.specs2.specification

GivenWhenThen

trait GivenWhenThen extends RegexStepsFactory with TuplesToSeq with FragmentsBuilder with SpecificationStringContext with ArgumentsArgs

This trait provides building blocks to create steps and examples from regular expression.

It is used to implement a Given-When-Then way of describing systems.

Fragments are created by adding a Given step to a Text:

"name: ${user}" ^ givenName

This creates a PreStep object containing the current context (representing all the extracted values) and a list of Fragments containing:

Then, this PreStep object can be followed by another piece of Text to create a PreStepText object. This object merely stores the additional Text fragment so that values can be extracted from it when a When step is added:

// this creates a PreStepText object
"name: ${user}" ^ givenName ^
"age: ${38}"

// this creates a PreStep object
"name: ${user}" ^ givenName ^
"age: ${38}"    ^ thenAge ^

Eventually, when a Then step is added, a sequence of PostStep/PostStepText objects is created. Those objects use the current context and the results returned by the Then objects to create Examples.

The last PostStep object contains the list of all fragments created by the Given/When/Then sequence:

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. GivenWhenThen
  2. ArgumentsArgs
  3. ArgProperties
  4. SpecificationStringContext
  5. FragmentsBuilder
  6. FormattingTags
  7. Tags
  8. ExamplesFactory
  9. TuplesToSeq
  10. RegexStepsFactory
  11. ImplicitParameters
  12. AnyRef
  13. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. case class AsFragments(fs: Fragments) extends Product with Serializable

    Definition Classes
    FragmentsBuilder
  2. class ExampleDesc extends AnyRef

    transient class to hold an example description before creating a full Example

  3. case class FormattingTagParameter(condition: Boolean) extends Product with Serializable

    Definition Classes
    FormattingTags
  4. class GivenExampleDesc extends ExampleDesc

    transient class to hold an example description before creating a full Example

  5. class GivenWhenThenFragmentsFragment extends FragmentsFragment

  6. class HtmlLinkFragments extends AnyRef

    Definition Classes
    FragmentsBuilder
  7. class HtmlLinkFragments2 extends AnyRef

    Definition Classes
    FragmentsBuilder
  8. trait ImplicitParam extends AnyRef

    Definition Classes
    ImplicitParameters
  9. trait ImplicitParam1 extends AnyRef

    Definition Classes
    ImplicitParameters
  10. trait ImplicitParam10 extends AnyRef

    Definition Classes
    ImplicitParameters
  11. trait ImplicitParam2 extends AnyRef

    Definition Classes
    ImplicitParameters
  12. trait ImplicitParam3 extends AnyRef

    Definition Classes
    ImplicitParameters
  13. trait ImplicitParam4 extends AnyRef

    Definition Classes
    ImplicitParameters
  14. trait ImplicitParam5 extends AnyRef

    Definition Classes
    ImplicitParameters
  15. trait ImplicitParam6 extends AnyRef

    Definition Classes
    ImplicitParameters
  16. trait ImplicitParam7 extends AnyRef

    Definition Classes
    ImplicitParameters
  17. trait ImplicitParam8 extends AnyRef

    Definition Classes
    ImplicitParameters
  18. trait ImplicitParam9 extends AnyRef

    Definition Classes
    ImplicitParameters
  19. class ReadAs extends AnyRef

    This class creates Given or Then extractors from a regular expression and a function

  20. case class SpecIdentificationMarkdownLink(s: String) extends Product with Serializable

    Definition Classes
    FragmentsBuilder
  21. class SpecTitle extends AnyRef

    Definition Classes
    FragmentsBuilder
  22. implicit class specificationInStringContext extends AnyRef

    Definition Classes
    SpecificationStringContext

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. implicit def RegexFragmentToFragments(r: RegexFragment): Fragments

    at any point in time a regex sequence can be transformed as a sequence of Fragments

  7. implicit def ToFormattingTagParameter(condition: Boolean): Option[FormattingTagParameter]

    Definition Classes
    FormattingTags
  8. implicit def anyAsResultIsSpecPart(r: ⇒ Function0Result): SpecPart

    Definition Classes
    SpecificationStringContext
  9. implicit def anyToArgProperty[T](t: ⇒ T): ArgProperty[T]

    Definition Classes
    ArgProperties
  10. def args(ex: ArgProperty[String] = ArgProperty[String](), include: ArgProperty[String] = ArgProperty[String](), exclude: ArgProperty[String] = ArgProperty[String](), wasIssue: ArgProperty[Boolean] = ArgProperty[Boolean](), was: ArgProperty[String] = ArgProperty[String](), plan: ArgProperty[Boolean] = ArgProperty[Boolean](), skipAll: ArgProperty[Boolean] = ArgProperty[Boolean](), stopOnFail: ArgProperty[Boolean] = ArgProperty[Boolean](), stopOnSkip: ArgProperty[Boolean] = ArgProperty[Boolean](), sequential: ArgProperty[Boolean] = ArgProperty[Boolean](), isolated: ArgProperty[Boolean] = ArgProperty[Boolean](), xonly: ArgProperty[Boolean] = ArgProperty[Boolean](), showOnly: ArgProperty[String] = ArgProperty[String](), color: ArgProperty[Boolean] = ArgProperty[Boolean]()): Arguments

    shorthand method to create an Arguments object

    shorthand method to create an Arguments object

    Definition Classes
    ArgumentsArgs
  11. lazy val args: ArgumentsNamespace

    Definition Classes
    ArgumentsArgs
  12. implicit def argumentsFragment(a: Arguments): GivenWhenThenFragmentsFragment

    Arguments creation

    Arguments creation

    returns

    a Fragments object which can be chained with other fragments

    Definition Classes
    GivenWhenThenFragmentsBuilder
  13. implicit def argumentsIsSpecPart(a: Arguments): SpecPart

    Definition Classes
    SpecificationStringContext
  14. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  15. implicit def asResultIsSpecPart[R](r: ⇒ R)(implicit arg0: AsResult[R]): SpecPart

    Definition Classes
    SpecificationStringContext
  16. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. implicit def downcastGiven[X, Y <: X](gv: Given[Y]): Given[X] { def extract(s: String): Y }

    implicit conversion to transform a Given[Y] to Given[X] when Y <: X

  18. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  19. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  20. implicit def exampleFactory: ExampleFactory

    Definition Classes
    ExamplesFactory
  21. implicit def exampleIsSpecPart(e: Example): SpecPart

    Definition Classes
    SpecificationStringContext
  22. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  23. implicit def forExample(s: String): GivenExampleDesc

    This implicit allows to use the "so" object:

    This implicit allows to use the "so" object:

    "given the name: ${eric}, then the age is ${18}" ! so { case (name: String, age: String) => age.toInt must_== 18 }

    returns

    an Example description from a string, to create a full Example once the body is defined

    Definition Classes
    GivenWhenThenFragmentsBuilder
  24. implicit def formIsSpecPart(f: ⇒ Form): SpecPart

    Definition Classes
    SpecificationStringContext
  25. def formatSection(markdown: Option[FormattingTagParameter] = None, flow: Option[FormattingTagParameter] = None, verbatim: Option[FormattingTagParameter] = None): TaggingFragment

    add a tagging section with special tag names specifying the formatting options

    add a tagging section with special tag names specifying the formatting options

    Definition Classes
    FormattingTags
  26. def formatTag(markdown: Option[FormattingTagParameter] = None, flow: Option[FormattingTagParameter] = None, verbatim: Option[FormattingTagParameter] = None): TaggingFragment

    add a tag with special tag names specifying the formatting options

    add a tag with special tag names specifying the formatting options

    Definition Classes
    FormattingTags
  27. implicit def fragmentFragments(f: ⇒ Fragment): GivenWhenThenFragmentsFragment

    Definition Classes
    GivenWhenThenFragmentsBuilder
  28. implicit def fragmentIsSpecPart(f: Fragment): SpecPart

    Definition Classes
    SpecificationStringContext
  29. implicit def fragments(f: ⇒ Fragment): Fragments

    returns

    a Fragments object from a single Fragment

    Definition Classes
    FragmentsBuilder
  30. implicit def fragmentsFragmentIsSpecPart(ffs: FragmentsFragment): SpecPart

    Definition Classes
    SpecificationStringContext
  31. implicit def fragmentsFragmentToFragments(fs: FragmentsFragment): Fragments

    reverse conversion from a Fragment containing a Fragments object to the Fragments object

    reverse conversion from a Fragment containing a Fragments object to the Fragments object

    Definition Classes
    FragmentsBuilder
  32. implicit def fragmentsFragments(fs: ⇒ Fragments): GivenWhenThenFragmentsFragment

    Definition Classes
    GivenWhenThenFragmentsBuilder
  33. implicit def fragmentsIsSpecPart(fragments: Fragments): SpecPart

    Definition Classes
    SpecificationStringContext
  34. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  35. implicit def givenIsSpecPart[T](g: Given[T]): SpecPart

  36. def groupAs(groupRegex: String): ReadAs

    factory method to create a Given or a Then element from a regex, using a regex denoting groups to extract

    factory method to create a Given or a Then element from a regex, using a regex denoting groups to extract

    Definition Classes
    RegexStepsFactory
  37. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  38. implicit lazy val implicitParam: ImplicitParam

    Definition Classes
    ImplicitParameters
  39. implicit lazy val implicitParam1: ImplicitParam1

    Definition Classes
    ImplicitParameters
  40. implicit lazy val implicitParam10: ImplicitParam10

    Definition Classes
    ImplicitParameters
  41. implicit lazy val implicitParam2: ImplicitParam2

    Definition Classes
    ImplicitParameters
  42. implicit lazy val implicitParam3: ImplicitParam3

    Definition Classes
    ImplicitParameters
  43. implicit lazy val implicitParam4: ImplicitParam4

    Definition Classes
    ImplicitParameters
  44. implicit lazy val implicitParam5: ImplicitParam5

    Definition Classes
    ImplicitParameters
  45. implicit lazy val implicitParam6: ImplicitParam6

    Definition Classes
    ImplicitParameters
  46. implicit lazy val implicitParam7: ImplicitParam7

    Definition Classes
    ImplicitParameters
  47. implicit lazy val implicitParam8: ImplicitParam8

    Definition Classes
    ImplicitParameters
  48. implicit lazy val implicitParam9: ImplicitParam9

    Definition Classes
    ImplicitParameters
  49. implicit def inScope(s: Scope): Success

    transform a scope to a success to be able to create traits containing any variables and usable in any Examples

    transform a scope to a success to be able to create traits containing any variables and usable in any Examples

    Definition Classes
    FragmentsBuilder
  50. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  51. def link(htmlLink: HtmlLink, f: Fragments): Fragments

    Definition Classes
    FragmentsBuilder
  52. def link(htmlLink: HtmlLink, s: SpecificationStructure): Fragments

    create a link directly on a specification, with a given link

    create a link directly on a specification, with a given link

    Definition Classes
    FragmentsBuilder
  53. def link(fss: Seq[Fragments]): Fragments

    Definition Classes
    FragmentsBuilder
  54. def link(fs: Fragments, fss: Fragments*): Fragments

    Definition Classes
    FragmentsBuilder
  55. def link(fs: Fragments): Fragments

    Definition Classes
    FragmentsBuilder
  56. def link(ss: Seq[SpecificationStructure], dummy: Int = 0): Fragments

    Definition Classes
    FragmentsBuilder
  57. def link(s: SpecificationStructure, ss: SpecificationStructure*): Fragments

    Definition Classes
    FragmentsBuilder
  58. def link(s: SpecificationStructure): Fragments

    create a link directly on a specification

    create a link directly on a specification

    Definition Classes
    FragmentsBuilder
  59. implicit def markdownLinkIsSpecPart(link: MarkdownLink): SpecPart

    Definition Classes
    SpecificationStringContext
  60. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  61. final def notify(): Unit

    Definition Classes
    AnyRef
  62. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  63. def readAs(regex: String): ReadAs

    factory method to create a Given or a Then element from a regex

    factory method to create a Given or a Then element from a regex

    Definition Classes
    RegexStepsFactory
  64. def s2(content: String, Yrangepos: Boolean, texts: Seq[String], variables: Seq[SpecPart], rangeExpressions: Seq[String]): Fragments

    based on the interpolated variables and the expressions captured with the macro, create the appropriate fragments

    based on the interpolated variables and the expressions captured with the macro, create the appropriate fragments

    if the Yrangepos scalac option is not set then we use an approximated method to find the expressions texts

    Definition Classes
    SpecificationStringContext
  65. implicit def scopeAsResult[S <: Scope]: AsResult[S]

    typeclass to transform a Scope to a Result

    typeclass to transform a Scope to a Result

    Definition Classes
    FragmentsBuilder
  66. def section(names: String*): TaggingFragment

    create a AsSection fragment

    create a AsSection fragment

    Definition Classes
    Tags
  67. def see(htmlLink: HtmlLink, fs: Fragments): Fragments

    Definition Classes
    FragmentsBuilder
  68. def see(htmlLink: HtmlLink, s: SpecificationStructure): Fragments

    create a see-only link directly on a specification, with a given link

    create a see-only link directly on a specification, with a given link

    Definition Classes
    FragmentsBuilder
  69. def see(fss: Seq[Fragments]): Fragments

    Definition Classes
    FragmentsBuilder
  70. def see(fs: Fragments, fss: Fragments*): Fragments

    Definition Classes
    FragmentsBuilder
  71. def see(fs: Fragments): Fragments

    Definition Classes
    FragmentsBuilder
  72. def see(s: SpecificationStructure): Fragments

    Definition Classes
    FragmentsBuilder
  73. def see(ss: Seq[SpecificationStructure])(implicit p1: ImplicitParam1): Fragments

    Definition Classes
    FragmentsBuilder
  74. def see(s: SpecificationStructure, ss: SpecificationStructure*): Fragments

    create a html link without including the other specification fragments

    create a html link without including the other specification fragments

    Definition Classes
    FragmentsBuilder
  75. implicit def specIdentificationMarkdownLink(s: String): SpecIdentificationMarkdownLink

    create markdown links from string + spec identification

    create markdown links from string + spec identification

    Definition Classes
    FragmentsBuilder
  76. implicit def specStructureIsSpecPart(s: SpecificationStructure): SpecPart

    Definition Classes
    SpecificationStringContext
  77. implicit def specificationStructureToFragments(s: SpecificationStructure): AsFragments

    this implicit allows to call some functions directly on a specification, like 'hide'

    this implicit allows to call some functions directly on a specification, like 'hide'

    Definition Classes
    FragmentsBuilder
  78. implicit def stringIsSpecPart(s: ⇒ String): SpecPart

    Definition Classes
    SpecificationStringContext
  79. implicit def stringToHtmlLinkFragments(s: String): HtmlLinkFragments

    Links to other specifications creation

    Links to other specifications creation

    Definition Classes
    FragmentsBuilder
    See also

    org.specs2.UserGuide

  80. implicit def stringToHtmlLinkFragments2(s: String): HtmlLinkFragments2

    Definition Classes
    FragmentsBuilder
  81. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  82. def tag(names: String*): TaggingFragment

    create a TaggedAs fragment

    create a TaggedAs fragment

    Definition Classes
    Tags
  83. implicit def textFragment(s: String): GivenWhenThenFragmentsFragment

    returns

    create a Text Fragment from a string and allow it to be chained to other fragments

    Definition Classes
    GivenWhenThenFragmentsBuilder
  84. implicit def textStart(s: String): Fragments

    returns

    a Fragments object from a string

    Definition Classes
    FragmentsBuilder
  85. implicit def thenIsSpecPart[T](t: Then[T]): SpecPart

  86. implicit def title(s: String): SpecTitle

    This method allows to add a title to the Specification.

    This method allows to add a title to the Specification. It can be used as an operation on a String: "spec title".title

    returns

    a Fragments object from a string, with the given title

    Definition Classes
    FragmentsBuilder
  87. implicit def toFormIsSpecPart(f: AnyRef { def form: org.specs2.form.Form }): SpecPart

    Definition Classes
    SpecificationStringContext
  88. def toString(): String

    Definition Classes
    AnyRef → Any
  89. implicit def tupleToSeq10[T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10](t: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10))(implicit e1: <:<[T1, T], e2: <:<[T2, T], e3: <:<[T3, T], e4: <:<[T4, T], e5: <:<[T5, T], e6: <:<[T6, T], e7: <:<[T7, T], e8: <:<[T8, T], e9: <:<[T9, T], e10: <:<[T10, T]): Seq[T]

    Definition Classes
    TuplesToSeq
  90. implicit def tupleToSeq2[T, T1, T2](t: (T1, T2))(implicit e1: <:<[T1, T], e2: <:<[T2, T]): Seq[T]

    Definition Classes
    TuplesToSeq
  91. implicit def tupleToSeq3[T, T1, T2, T3](t: (T1, T2, T3))(implicit e1: <:<[T1, T], e2: <:<[T2, T], e3: <:<[T3, T]): Seq[T]

    Definition Classes
    TuplesToSeq
  92. implicit def tupleToSeq4[T, T1, T2, T3, T4](t: (T1, T2, T3, T4))(implicit e1: <:<[T1, T], e2: <:<[T2, T], e3: <:<[T3, T], e4: <:<[T4, T]): Seq[T]

    Definition Classes
    TuplesToSeq
  93. implicit def tupleToSeq5[T, T1, T2, T3, T4, T5](t: (T1, T2, T3, T4, T5))(implicit e1: <:<[T1, T], e2: <:<[T2, T], e3: <:<[T3, T], e4: <:<[T4, T], e5: <:<[T5, T]): Seq[T]

    Definition Classes
    TuplesToSeq
  94. implicit def tupleToSeq6[T, T1, T2, T3, T4, T5, T6](t: (T1, T2, T3, T4, T5, T6))(implicit e1: <:<[T1, T], e2: <:<[T2, T], e3: <:<[T3, T], e4: <:<[T4, T], e5: <:<[T5, T], e6: <:<[T6, T]): Seq[T]

    Definition Classes
    TuplesToSeq
  95. implicit def tupleToSeq7[T, T1, T2, T3, T4, T5, T6, T7](t: (T1, T2, T3, T4, T5, T6, T7))(implicit e1: <:<[T1, T], e2: <:<[T2, T], e3: <:<[T3, T], e4: <:<[T4, T], e5: <:<[T5, T], e6: <:<[T6, T], e7: <:<[T7, T]): Seq[T]

    Definition Classes
    TuplesToSeq
  96. implicit def tupleToSeq8[T, T1, T2, T3, T4, T5, T6, T7, T8](t: (T1, T2, T3, T4, T5, T6, T7, T8))(implicit e1: <:<[T1, T], e2: <:<[T2, T], e3: <:<[T3, T], e4: <:<[T4, T], e5: <:<[T5, T], e6: <:<[T6, T], e7: <:<[T7, T], e8: <:<[T8, T]): Seq[T]

    Definition Classes
    TuplesToSeq
  97. implicit def tupleToSeq9[T, T1, T2, T3, T4, T5, T6, T7, T8, T9](t: (T1, T2, T3, T4, T5, T6, T7, T8, T9))(implicit e1: <:<[T1, T], e2: <:<[T2, T], e3: <:<[T3, T], e4: <:<[T4, T], e5: <:<[T5, T], e6: <:<[T6, T], e7: <:<[T7, T], e8: <:<[T8, T], e9: <:<[T9, T]): Seq[T]

    Definition Classes
    TuplesToSeq
  98. implicit def upcastThen[X, Y <: X](th: Then[X]): Then[Y]

    implicit conversion to transform a Then[Y] to Then[X] when Y <: X

  99. implicit def updowncastWhen[P, Q, R <: P, S >: Q](wh: When[P, Q]): When[R, S]

    implicit conversion to transform a When[P, Q] to When[R, S] when R <: P and S >: Q

  100. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  101. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  102. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  103. implicit def whenIsSpecPart[T, U](w: When[T, U]): SpecPart

Inherited from ArgumentsArgs

Inherited from ArgProperties

Inherited from FragmentsBuilder

Inherited from FormattingTags

Inherited from Tags

Inherited from ExamplesFactory

Inherited from TuplesToSeq

Inherited from RegexStepsFactory

Inherited from ImplicitParameters

Inherited from AnyRef

Inherited from Any

Ungrouped