Open koya-kudaka opened 4 years ago
例えば、今回のチュートリアルの演習では、以下のような書き方をする
class UsersSignupTest < ActionDispatch::IntegrationTest
test "invalid signup information" do
get signup_path
assert_no_difference 'User.count' do
post users_path, params: { user: { name: "",
email: "user@invalid",
password: "foo",
password_confirmation: "bar" } }
end
assert_template 'users/new'
assert_select 'div#<CSS id for error explanation>'
assert_select 'div.<CSS class for field with error>'
end
.
.
.
end
まとめると、、 assert_selectはhtml(構造)が正しいかどうかをテストするためのメソッド!
目的 assert_selectを使ってテストする演習があったので、ついでにassert_selectってどう使うのか書いてみるとともに、言語化して自分なりに理解する。
assert_selectとは、、、 assert_selectは、htmlの構造をテストするアサーションメソッド。
webアプリケーションは、適切なhtml文書をブラウザに返すサーバーなので、レスポンスで返すhtmlが予想通りになれば良いということになる。しかし、htmlの文字列を単純に比較するのは問題がある(改行、スペース、タブが含まれているから)ので、assert_selectメソッドを使い統合テストを行う。