...

/

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.

We'll cover the following...

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:

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

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

Output

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