defmodule TvRecipe.UserTest do
use TvRecipe.ModelCase
alias TvRecipe.User
@valid_attrs %{email: "some content", password: "some content", username: "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 表示有效的 User 属性,@invalid_attrs 表示无效的 User 属性,我们按本章开头拟定的规则修改 @valid_attrs:
diff --git a/test/tv_recipe/users_test.exs b/test/tv_recipe/users_test.exs
index 1d5494f..7c73207 100644
--- a/test/tv_recipe/users_test.exs
+++ b/test/tv_recipe/users_test.exs
@@ -3,7 +3,7 @@ defmodule TvRecipe.UserTest do
alias TvRecipe.User
- @valid_attrs %{email: "some content", password: "some content", username: "some content"}
+ @valid_attrs %{email: "chenxsan@gmail.com", password: "some content", username: "chenxsan"}
@invalid_attrs %{}
test "changeset with valid attributes" do
接着,在 users_test.exs 文件中添加一个新测试:
diff --git a/test/models/user_test.exs b/test/models/user_test.exs
index 7c73207..4c174ab 100644
--- a/test/tv_recipe/users_test.exs
+++ b/test/tv_recipe/users_test.exs
@@ -15,4 +15,9 @@ defmodule TvRecipe.UserTest do
changeset = User.changeset(%User{}, @invalid_attrs)
refute changeset.valid?
end
+
+ test "username should not be blank" do
+ attrs = %{@valid_attrs | username: ""}
+ assert %{username: ["请填写"] } = errors_on(%User{}, attrs)
+ end
end