2016-04-28 7 views
0

first_namelast_nameuserモデルを作成するために、標準的な足場を使用しました。私はfirst_nameまたはlast_nameが存在することを確認する検証を書いた。デフォルトの検証では、ANDがチェックされます。 first_nameまたはlast_nameが存在することをテストするテストを追加する最良の方法は何ですか?OR検証のテスト

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 

答えて

2

私はすべての有効な組み合わせで@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 

また、それぞれ別々のテストを作成することもできます。

関連する問題