Packages
espec
0.2.0
1.10.0
1.9.2
1.9.1
1.9.0
1.8.3
1.8.2
1.8.1
1.8.0
1.7.0
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.1
1.5.0
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.2
1.2.1
1.2.0
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
0.8.28
0.8.27
0.8.26
0.8.25
0.8.24
0.8.23
0.8.22
0.8.21
0.8.20
0.8.19
0.8.18
0.8.17
0.8.16
0.8.15
0.8.14
0.8.13
0.8.12
0.8.11
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.2
0.4.1
0.4.0
0.3.7
0.3.5
0.3.0
0.2.0
0.1.0
BDD testing framework for Elixir inspired by RSpec.
Current section
Files
Jump to
Current section
Files
lib/espec/context.ex
defmodule ESpec.Context do
@moduledoc """
Defines macros 'context' and 'describe'.
"""
@doc "Context has description."
defstruct description: ""
@doc "Add context with description to 'example context'."
defmacro context(description, body) do
quote do
tail = @context
head = %ESpec.Context{ description: unquote(description) }
@context [head | tail]
unquote(body)
@context tail
end
end
@doc "Alias for `context/2`."
defmacro describe(description, body) do
quote do
unquote(__MODULE__).context(unquote(description), unquote(body))
end
end
@doc "Add context without description."
defmacro context(do: block) do
quote do
unquote(__MODULE__).context("", do: unquote(block))
end
end
@doc "Alias for `context/1`."
defmacro describe(do: block) do
quote do
unquote(__MODULE__).context("", unquote(block))
end
end
end