Testing unsuccessful edits

接下來要為失敗的編輯寫個整合測試,首先建立一個整合測試檔案:

$ rails generate integration_test users_edit
      invoke  test_unit
      create    test/integration/users_edit_test.rb

這段測試主要是檢查提交無效的編輯資料之後,會重新渲染編輯頁面:

test/integration/users_edit_test.rb

require 'test_helper'

class UsersEditTest < ActionDispatch::IntegrationTest

  def setup
    @user = users(:michael)
  end

  test "unsuccessful edit" do
    get edit_user_path(@user)
    assert_template 'users/edit'
    patch user_path(@user), user: { name:  "",
                                    email: "foo@invalid",
                                    password:              "foo",
                                    password_confirmation: "bar" }
    assert_template 'users/edit'
  end
end

執行測試應該會通過(Green):

$ bundle exec rake test