我使用标准脚手架创建了一个具有属性first_name
和last_name
的user
模型。我写了一个验证来检查是否存在first_name
或last_name
。默认验证检查 AND。添加存在first_name
或last_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
您还可以为每个测试创建单独的测试。