簡體   English   中英

rspec核心Ruby on Rails

[英]rspec core Ruby on Rails

您好,我正在用rspec測試我的應用程序:

這是測試文件。

require 'spec_helper'

describe RecipesController do
    render_views
    describe "index" do
        before do
            Recipe.create!(name: "Spaghetti alla Carbonara")
            Recipe.create!(name: "Spaghetti alle vongole e cozze")
            Recipe.create!(name: "Bistecca")
            Recipe.create!(name: "Fritto")

            xhr :get, :index, format: :json, keywords: keywords
        end

        subject(:results) { JSON.parse(response.body) }

        def extract_name 
            ->(object){ object["name"] } 
        end

        context 'quando la ricerca riporta dei risultati' do
            let(:keywords) { 'Spaghetti' }
            it 'essere 200' do
                expect(response.status).to eq(200)
            end

            it 'deve ritornare due risultati' do
                expect(results.size).to eq(2)
            end

            it 'deve esserci la ricetta Spaghetti alla Carbonara' do
                expect(results.map(&extract_name)).to include('Spaghetti alla Carbonara')
            end

            it 'deve esserci la ricetta Spaghetti alle vongole e cozze ' do
                expect(results.map(&extract_name)).to include('Spaghetti alle vongole e cozze')
            end
        end

        context 'quando la ricerca non riporta alcun risulato' do
            let(:keywords) { 'tortellini' }
            it 'non deve ritornare alcun risulato' do
                expect(results.size).to eq(0)
            end
        end


    end
end

當我嘗試通過命令啟動測試時:

耙db:migrate RAILS_ENV = test; rspec規范/控制器/recipes_controller_spec.rb

我收到這個錯誤

/var/lib/gems/2.1.0/gems/bundler-1.10.1/lib/bundler/runtime.rb:34:in block in setup': You have already activated rspec-core 3.3.1, but your Gemfile requires rspec-core 2.99.2. Prepending 在命令前block in setup': You have already activated rspec-core 3.3.1, but your Gemfile requires rspec-core 2.99.2. Prepending bundle exec`可能會解決此問題。 (寶石:: LoadError)

如日志中所述,錯誤與rspec-core v3.3.1有一些沖突,因此在我的gem文件中,我添加了以下行以安裝rspec-core v2.99.2

gem 'rspec-core', '~> 2.99.2'

但是,如果我再次啟動該命令(在安裝捆綁軟件之后並使用捆綁軟件exec),結果是相同的。 有人有類似的問題嗎?

你試過了嗎?

bundle exec rake db:migrate RAILS_ENV=test
bundle exec rspec spec/controllers/recipes_controller_spec.rb

暫無
暫無

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

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