Ecto.ValidationCase

Build StatusInline docs

Simplify your Ecto model validation tests. Loosely inspired by shoulda matchers, but simpler.

Sample

defmodule MyApp.UserTest do
  use ExUnit.Case
  use Ecto.ValidationCase, model: MyApp.User

  test "requires password to be 10 chars long" do
    rejects "password",    for: :password, message: "too short"
    accepts "password123", for: :password
  end
end

Rationale

Rather than create a matching test helper function for each of the valiations that Ecto supports, this library intentionally keeps things simple, providing only accepts/2 and rejects/2. Why?

Installation

You can install Ecto.ValidationCase from hex. First, change your deps in mix.exs:

def deps do
  [{:ecto_validation_case, ">= 0.1.0"}]
end

Then run mix deps.get to install.

License

MIT. See LICENSE and NOTICE for more details.