Skip to content
This repository has been archived by the owner on Dec 15, 2022. It is now read-only.

Latest commit

 

History

History
62 lines (47 loc) · 1.37 KB

README.md

File metadata and controls

62 lines (47 loc) · 1.37 KB

Snapshy

Snapshy is an Elixir package for running snapshot tests in ExUnit. More extensive documentation is coming soon.

Installation

Add snapshy to your list of dependencies in mix.exs and run mix deps.get:

def deps do
  [
    # ...
    {:snapshy, "~> 0.2"}
  ]
end

Overview

The way this works:

  1. Add Snapshy to the test
 defmodule TokenizerTest do
+  use Snapshy
   use ExUnit.Case

   # ...
 end
  1. Replace test with test_snapshot
-  test "correctly tokenizes booleans" do
+  test_snapshot "correctly tokenizes booleans" do
     # ...
   end
  1. Replace an assertion with simple function call
-    assert(
-      tokens("true false") == [
-        boolean: "true",
-        boolean: "false"
-      ]
-    )
+    tokens("true false")

The first time a snapshot will be created in test/__snapshots__/path/to/test_file/function_name.stub. The second time, an assertion will be made against the snapshot. If you make changes and you want to update snapshots, run SNAPSHY_OVERRIDE=true mix test instead of mix test. Verify in git every change is correct.

Alternatively, you can use a macro call instead of the test_snapshot macro like so:

test "correctly tokenizes booleans" do
  match_snapshot tokens("true false")
end

Careful! There can only be one match_snapshot call per test macro call.