Skip to content

Latest commit

 

History

History
42 lines (32 loc) · 1.32 KB

user-test.asc

File metadata and controls

42 lines (32 loc) · 1.32 KB

测试 User

老实讲,我不大喜欢写测试。

但我还是得说,测试非常重要。它们是我们修改代码的灯塔 - 没有它们,我们很可能在修改代码时触礁。只是大部分项目活不过几个迭代 - 也就没多大必要写测试。

针对 User,有两个要点需要测试:

  1. from_id 必填

  2. from_id 独一无二

test/tweet_bot/accounts/accounts_test.exs 文件中新增测试如下:

test/tweet_bot/accounts/accounts_test.exs
test "from_id should be required" do
  changeset = User.changeset(%User{}, @valid_attrs |> Map.delete(:from_id))
  refute changeset.valid?
  assert %{from_id: ["can't be blank"]} = errors_on(changeset)
end
test "from_id should be unique" do
  assert {:ok, _} = Accounts.create_user(@valid_attrs)
  assert {:error, changeset} = Accounts.create_user(@valid_attrs)
  assert %{from_id: ["has already been taken"]} = errors_on(changeset)
end

运行 mix test

$ mix test
.............

Finished in 0.2 seconds
13 tests, 0 failures

Randomized with seed 202657

是了,这就是测试驱动开发。我们的测试使用我们的接口,并验证接口行为的正确性。而我们的代码将根据测试结果不断调整,直到测试全部通过。