Я следую учебному пособию по MHartl, и у меня есть интеграционный тест, который не проходит, но два других утверждения, основанные на той же странице, проходят успешно.
код, который у меня есть
test "login with valid information followed by logout" do
get login_path
post login_path, params: { session: { email: @user.email,
password: 'password' } }
assert is_logged_in?
assert_redirected_to @user
follow_redirect!
assert_template 'users/show'
assert_select "a[href=?]", login_path, count: 0
assert_select "a[href=?]", logout_path
assert_select "a[href=?]", user_path(@user)
delete logout_path
assert_not is_logged_in?
assert_redirected_to root_url
follow_redirect!
assert_select "a[href=?]", login_path
assert_select "a[href=?]", logout_path, count: 0
assert_select "a[href=?]", user_path(@user), count: 0
end
Одно утверждение не работает
assert_select "a[href=?]", login_path
что вызывает ошибку
Expected at least 1 element matching "a[href="/login"]", found 0
Однако два последних утверждения проходят, как и ожидалось.
assert_select "a[href=?]", logout_path, count: 0
assert_select "a[href=?]", user_path(@user), count: 0
Итак, если все три утверждения проверяют, перенаправляет ли выход на домашнюю страницу, почему два прохода проходят, а проверка для login_path не проходит?