簡體   English   中英

Kaminari分頁的RSpec測試應該在不失敗的情況下進行

[英]RSpec test for Kaminari pagination doesn’t fail when it should

我想用RSpec測試Kaminari分頁。

spec/requests/companies_spec.rb

require 'rails_helper'

describe "Companies" do
  describe "GET /companies" do
    before(:all) { 51.times { FactoryGirl.create(:company) }}
    describe "index" do
      it "has second page" do
        visit root_path
        find("//*[@class='pagination']//a[text()='2']").click
        expect(page.status_code).to eq(200)
      end
    end
  end
end

app/models/company.rb

class Company < ActiveRecord::Base
  paginates_per 50
end

該測試創建了51家公司,因此創建了第二頁的分頁。 但是即使我注釋掉before(:all)行,測試也不會失敗。

如何編寫符合我預期的測試?

確保測試后刪除數據庫中創建的Company條目。 如果不這樣做,則先前測試中的數據庫中將有50個以上的條目。

您可以在運行測試后通過使用database_cleaner gem刪除數據庫條目。

除非期望失敗,否則測試不會失敗。 您唯一的期望是page.status_code為200。因此,如果沒有記錄,將會發生

  1. 您訪問根路徑(得到200)
  2. 水豚未能找到2鏈接並單擊它
  3. 您通過了測試,因為您已經成功訪問​​了根路徑

暫無
暫無

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

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