утверждать current_path - PullRequest
       30

утверждать current_path

1 голос
/ 14 октября 2011
 require 'test_helper'

     class MyTest < ActionController::IntegrationTest

      test "view posts from login page" do
      visit("/logins/new")
      find_field('Username').set('abode')
      find_field('Password').set('efghi')
      click_link_or_button('Login')
      #assert current_path == "/logins/new"
      assert current_path == "/posts/index" 
      end

    end

В приведенном выше коде первый assert проходит, а второй терпит неудачу.Это должно случиться иначе.После выполнения click_link_or_button('Login') логины страницы предполагаются.Что я делаю не так?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 14 сентября 2015

Для тех, кто ищет эту проблему в настоящее время - с Capybara 2.5 вы можете сделать

assert_current_path('/posts/index')

и он будет использовать поведение ожидания Capybara, чтобы проверить, изменяется ли путь на ожидаемый

1 голос
/ 21 апреля 2016

Кажется, что переменная current_path еще не обновила свое новое значение пути.Так что нужно дождаться пути.Я сделал это двумя способами: исправил ошибку, препятствующую корректному current_path обновлению переменной , и rspec-wait gem .Итак, код ожидания следующий:

wait_for{ page }.to have_current_path(posts_path)
1 голос
/ 14 октября 2011

Что вы на самом деле пытаетесь проверить? Текущий_путь не может быть одновременно "/ logins / new" и "/ posts / index".

Я бы сказал, перенести первое утверждение сразу после шага посещения. Тогда ваш тест будет иметь смысл. Если по-прежнему происходит сбой, действие по входу в систему не работает.

...