测试 OR 验证



我使用标准脚手架创建了一个具有属性first_namelast_nameuser模型。我写了一个验证来检查是否存在first_namelast_name。默认验证检查 AND。添加存在first_namelast_name测试的测试的最佳方法是什么?

defmodule Vutuv.UserTest do
  use Vutuv.ModelCase
  alias Vutuv.User
  @valid_attrs %{first_name: "some content", last_name: "some content"}
  @invalid_attrs %{}
  test "changeset with valid attributes" do
    changeset = User.changeset(%User{}, @valid_attrs)
    assert changeset.valid?
  end
  test "changeset with invalid attributes" do
    changeset = User.changeset(%User{}, @invalid_attrs)
    refute changeset.valid?
  end
end

我会@valid_attrs列出所有有效组合,并断言所有这些组合在测试中都是有效的。

@valid_attrs [%{first_name: "some content", last_name: "some content"},
              %{first_name: "some content"},
              %{last_name: "some content"}]
test "changeset with valid attributes" do
  for valid_attrs <- @valid_attrs do
    changeset = User.changeset(%User{}, valid_attrs)
    assert changeset.valid?
  end
end

您还可以为每个测试创建单独的测试。

最新更新