ShouldI v0.3.0 ShouldI
ShouldI is a testing DSL around ExUnit.
ShouldI supports having blocks for nested contexts, convenience apis for behavioral naming.
Examples
defmodule MyFatTest do
having "necessary_key" do
setup context do
assign context,
necessary_key: :necessary_value
end
should( "have necessary key", context ) do
assert context.necessary_key == :necessary_value
end
having "sometimes_necessary_key" do
setup context do
assign context,
:sometimes_necessary_key, :sometimes_necessary_value
end
# matchers to handle common testing idioms
should_match_key sometimes_necessary_key: :sometimes_necessary_value
end
end
end
ShouldI provides support for common idioms through matchers.
For example, these matchers are for plug:
should_respond_having :success
should_match_body_to "<div id="test">
Summary
Functions
Shorthand function for assigning context key/value pairs
Macros
A function for wrapping together common setup code. having is useful for nesting setup requirements
Create a test case having an optional context. This macro thinly wraps ExUnit’s test macro and names the test case having “should”
Sometimes, when running a test concurrently, it’s helpful to generate a unique identifier so resources don’t collide. This macro creates ids, optionally appended
Functions
Macros
A function for wrapping together common setup code. having is useful for nesting setup requirements:
Examples
having "a logged in user" do
setup do
... setup a logged in user
end
having "a get to :index" do
setup do
assign context,
response: get(:index)
end
should_respond_having :success
should_match_body_to "some_string_to_match"
end
end
Create a test case having an optional context. This macro thinly wraps ExUnit’s test macro and names the test case having “should”.
Examples
should "add two numbers", do: (assert 2 + 2 = 4)
should "check context for :key", do: (assert context.key == :value)