...

/

Using Fixture Functions Directly

Using Fixture Functions Directly

Let’s learn how to test our templates and wrap up the use of fixtures in our tests.

Testing our templates

We have a single test we’ll need for templates. We want to make sure templates get compiled correctly. That test would be difficult if we had to do all of the setup work in the test block itself. Instead, we’ll use the helper functions in QuizBuilders to churn our test out quickly. We’ll create a new file template_test.exs in the test folder and add our latest test, like this:

Press + to interact
defmodule TemplateTest do
use ExUnit.Case
use QuizBuilders
test "building compiles the raw template" do
fields = template_fields()
template = Template.new(fields)
assert is_nil(Keyword.get(fields, :compiled))
assert not is_nil(template.compiled)
end
end

Let’s try running some commands to get an idea of how this test works:

Executable

Press + to interact
ExUnit.start()
Press + to interact
c("test/template_test.exs")
Press + to interact
use QuizBuilders
Press + to interact
alias Mastery.Core.{Template, Quiz, Response}
Press + to interact
fields = template_fields()
Press + to interact
template = Template.new(fields)
Press + to interact
is_nil(Keyword.get(fields, :compiled))
Press + to interact
is_nil(template.compiled)

Output

iex(1)> ExUnit.start()                        
:ok
iex(2)> c("test/template_test.exs")
[TemplateTest]
ie
...