Попытка запустить тест ruby ​​на рельсах - PullRequest
0 голосов
/ 08 мая 2018
%table.table-hover{}
%thead
  %tr
    %th Registration NO.
    %th Name
    %th Tier
    %th Email
%tbody
  - @accounts.each do |user|
    %tr{:onclick => "window.location='/accounts/#{user[:id]}';"}
      %td #{user.id}
      %td #{user.givenname}
      - if user.admin?
        %td Admin
      - elsif user.tech?
        %td Technician
      - else
        %td User
      %td #{user.email}

Это код для страницы, поэтому, когда вы нажимаете на строку в таблице таблица , затем она должна перейти на другую страницу, которая содержит подробности об этой строке. страница детализации А вот и мой тестовый код.

require 'rails_helper'

RSpec.describe 'accounts' do

context :js => true do

before do
  @testAdmin = FactoryGirl.create(:admin)
end

describe 'Account Page can' do

  before do
    login_as(@testAdmin, :scope => :account)
    visit '/accounts'
  end

  specify "visit account page" do
    page.find(:xpath, "//table/tbody/tr").click
    expect(page).to have_content 'Account: testAdmin'
  end

end

end

end

Когда я запускаю и распечатываю страницу, кажется, что она все еще находится на странице таблицы, что означает, что она не переместилась на страницу сведений.

1 Ответ

0 голосов
/ 08 мая 2018

Как указывает @Daniel, в вашей строке context нет текста описания. Это означает, что :js => true будет принято в качестве имени блока контекста и не будет использоваться в качестве метаданных для переключения на драйвер с поддержкой JS. Это должно было быть заметно по названию неудачного теста, который был бы похож на accounts {:js=>true} Account Page can visit account page. Чтобы исправить это, вам просто нужно включить описательный текст в context вызов

context "something", js: true

или просто сбросьте блок контекста и примените метаданные к любому из других блоков, имеющих смысл

describe 'Account Page can', js: true do
  ...
...