Merge pull request #89 from iamvery/assert-koan-test-results
Assert koan test results
This commit is contained in:
16
lib/koans.ex
16
lib/koans.ex
@@ -33,8 +33,12 @@ defmodule Koans do
|
||||
single_var = Blanks.replace(body, Macro.var(:answer, Koans))
|
||||
quote do
|
||||
def unquote(name)(answer) do
|
||||
unquote(single_var)
|
||||
:ok
|
||||
try do
|
||||
unquote(single_var)
|
||||
:ok
|
||||
rescue
|
||||
e in _ -> e
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -44,8 +48,12 @@ defmodule Koans do
|
||||
quote do
|
||||
def unquote(name)({:multiple, answers}) do
|
||||
converted = List.to_tuple(answers)
|
||||
unquote(multi_var)
|
||||
:ok
|
||||
try do
|
||||
unquote(multi_var)
|
||||
:ok
|
||||
rescue
|
||||
e in _ -> e
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
ExUnit.start()
|
||||
|
||||
defmodule TestHarness do
|
||||
import ExUnit.Assertions
|
||||
|
||||
def test_all(module, answers) do
|
||||
module.all_koans
|
||||
|> check_answer_count(answers, module)
|
||||
|> Enum.zip(answers)
|
||||
|> run_all(module)
|
||||
|> check_results
|
||||
end
|
||||
|
||||
defp check_answer_count(koans, answers, module) do
|
||||
@@ -19,6 +22,10 @@ defmodule TestHarness do
|
||||
end
|
||||
end
|
||||
|
||||
defp check_results(results) do
|
||||
Enum.each(results, &(assert &1 == :passed))
|
||||
end
|
||||
|
||||
def run_all(pairs, module) do
|
||||
Enum.map(pairs, fn ({koan, answer}) -> Execute.run_koan(module, koan, [answer]) end)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user