Packages
espec
0.8.14
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/assertions/change_to.ex
defmodule ESpec.Assertions.ChangeTo do
@moduledoc """
Defines 'change' assertion.
it do: expect(function1).to change(function2, to)
"""
use ESpec.Assertions.Interface
defp match(subject, [func, value]) do
initial = func.()
subject.()
then = func.()
result = (initial != value && then == value)
{result, {then, initial != value, then == value, initial == then}}
end
defp success_message(subject, [func, value], _result, positive) do
to = if positive, do: "changes", else: "doesn't change"
"`#{inspect subject}` #{to} the value of `#{inspect func}` to `#{inspect value}`."
end
defp error_message(subject, [func, value], {then, true, false, false}, positive) do
to = if positive, do: "to", else: "not to"
"Expected `#{inspect subject}` #{to} change the value of `#{inspect func}` to `#{inspect value}`, but was changed to `#{inspect then}`"
end
defp error_message(subject, [func, value], {_then, true, false, true}, positive) do
to = if positive, do: "to", else: "not to"
"Expected `#{inspect subject}` #{to} change the value of `#{inspect func}` to `#{inspect value}`, but was not changed"
end
defp error_message(subject, [func, value], {_then, false, _, _}, positive) do
to = if positive, do: "to", else: "not to"
"Expected `#{inspect subject}` #{to} change the value of `#{inspect func}` to `#{inspect value}`, but the initial value is `#{inspect value}`"
end
end