簡體   English   中英

Rspec2控制器的設計與測試

[英]Rspec2 controller testing with devise

我目前是RSpec的新手,並嘗試使用RSpec進行一些控制器測試

在我的Rails應用程序中,我使用Devise作為身份驗證系統。 我的問題是,當我們測試使用某種身份驗證系統的控制器(在我的示例中為Devise)時,標准做法是什么?

是嗎

1-跳過身份驗證

要么

2-驗證控制器

根據問題,以下是我的控制器

require File.dirname(__FILE__) + '/../spec_helper'

describe ProjectsController do
  include Devise::TestHelpers

  p "starting..."

  before(:each) do
    p "in before method"
    @request.env["devise.mapping"] = Devise.mappings[:user]
    sign_in Factory.create(:user)
  end

  it "should create a project" do
   p "should create a project"
  end

  after(:each) do
    @user.destroy unless @user.nil?
  end
end 

我只能看到“ starting ”,但是為什么它不去“ in before method ”和“ should create a project

我在Ubuntu上使用Rspec2和Rails2。

檢查一下: 在rSpec和Rails3中存根Devise

標准做法不是跳過身份驗證,而是有效地確保登錄了正確的用戶(用於設計)。

參考您的代碼:您是否嘗試過創建一些真實的測試? 例如簡單的事情

it "gets index" do
  get :index
  response.status.should be == 200
end

我不確定為什么您看不到打印語句。 rspec跳過了空步驟(沒有實際代碼),或者是因為其他問題出了錯。 但老實說,我什至不確定在rspec中使用p是否有效。

像rubymine這樣的工具可以讓您輕松調試規范(如果想要加入它,imho是比分散的p語句更好的方法)。

暫無
暫無

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

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