Creating test helpers for ease of testing and debugging
Let’s start off by creating a ControllerCase
module right away. This is where we will house all our helper functions, imports, and other behavior required for the tests:
defmodule Goldcrest.ExUnit.ControllerCase do defmacro __using__(_) do quote do use ExUnit.Case use Plug.Test end end end
In the preceding code snippet, we added a __using__/1
macro, which uses two modules, ExUnit.Case
and Plug.Test
. We will need ExUnit.Case
since we will be using ExUnit
for tests. We will also need Plug.Test
as seen in Chapter 5, as it provides several helpful functions, such as conn/2
, get_session/2
, and so on, which are needed to properly test a controller.
Let’s start by writing a controller test for TasksWeb.TaskController
:
defmodule TasksWeb.TaskControllerTest do &...