簡體   English   中英

嘗試在Rails上運行紅寶石測試

[英]Trying to run a ruby on rails test

%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}

這是頁面的代碼,因此當您單擊表table中的一行時,它應該跳到另一頁,這是有關該行的詳細信息。 詳細頁面這是我的測試代碼。

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

當我運行並打印出頁面時,它似乎仍在表格頁面上,這意味着它沒有跳到詳細信息頁面。

正如@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
  ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM