簡體   English   中英

偶爾失敗的rspec測試

[英]Sporadically failing rspec test

我的測試大部分時間都通過了:

....

Finished in 1.58 seconds
4 examples, 0 failures

Randomized with seed 29966

但是有時候會失敗:

.F..

Failures:

  1) Admin::SessionsController POST create authenticates correct users submissions
     Failure/Error: expect(session[:user_id]).to be @user.id

       expected #<Fixnum:3> => 1
            got #<NilClass:4> => nil

       Compared using equal?, which compares object identity,
       but expected and actual are not the same object. Use
       `expect(actual).to eq(expected)` if you don't care about
       object identity in this example.
     # ./spec/controllers/admin/sessions_controller_spec.rb:12:in `block (3 levels) in <top (required)>'

Finished in 1.24 seconds
4 examples, 1 failure

Failed examples:

rspec ./spec/controllers/admin/sessions_controller_spec.rb:10

有沒有人能看到的特定韻律或原因?

規格:

  describe "POST create" do
    it "authenticates correct users submissions" do
      post :create, email: @user.email, password: @user.password
      expect(session[:user_id]).to be @user.id
    end

    it "correctly sets @invalid flag" do
      post :create, email: "wrong", password: "wrong"
      assigns(:invalid).should be_true
    end
  end

正在測試的控制器動作:

  def create
    user = Admin::User.authenticate(params[:email], params[:password])
    if user
      session[:user_id] = user.id
      redirect_to admin_root_path
    else
      @invalid = true
      render :new
    end
  end

任何幫助將非常感激。 讓我知道是否需要更多詳細信息。

可能是因為RSpec默認情況下以隨機順序運行測試。

創建用戶之前,似乎正在調用您引用的測試。 如果要解決此問題,請確保在before塊中創建了用戶。 或者,可能是因為用戶已經存在,因此操作失敗。

暫無
暫無

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

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