Packages
espec
1.6.1
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