作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对不起,但这开始感觉像是在踢自己的脑袋。我完全被 RSpec 搞糊涂了。一个接一个地观看视频,一个接一个地阅读教程,但我仍然停留在第一个方 block 上。
=== 这是我正在使用的
http://github.com/fudgestudios/bort/tree/master
=== 错误
F
1)
NoMethodError in 'bidding on an item should work'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.new_record?
spec/controllers/auction_controller_spec.rb:16:
spec/controllers/auction_controller_spec.rb:6:
Finished in 0.067139 seconds
1 example, 1 failure
=== 这是我的 Controller Action
def bid
@bid = Bid.new(params[:bid])
@bid.save
end
===这是我的测试
require File.dirname(__FILE__) + '/../spec_helper'
include ApplicationHelper
include UsersHelper
include AuthenticatedTestHelper
describe "bidding on an item" do
controller_name :items
before(:each) do
@user = mock_user
stub!(:current_user).and_return(@user)
end
it "should work" do
post 'bid', :bid => { :auction_id => 1, :user_id => @user.id, :point => 1 }
assigns[:bid].should be_new_record
end
end
=== spec_helper
http://github.com/fudgestudios/bort/tree/master/spec/spec_helper.rb
凌晨 3 点起床上类却一事无成,这真是令人沮丧。请理解。
最佳答案
在 before(:each) 中有一些倒退的东西。看到示例指定帖子应将计数增加 1,您正在处理真实记录并且根本没有理由 stub 。此外,在这一点上,由于只有一个示例,因此没有理由使用前 block 。我会这样做:
describe ItemsController, "bidding on an item" do
fixtures :users
it "should create a new Bid" do
login_as :quentin
lambda do
post 'bid', :bid => { :auction_id => 1, :user_id => @user.id, :point => 1 }
end.should change(Bid, :count).by(1)
end
end
我建议的一件事是,在您更好地理解它们之前,暂时非常精细地创建这些东西。从期望开始(帖子应该更改出价计数),运行规范并让失败消息引导您在规范或代码中添加您需要的任何其他内容。
关于ruby-on-rails - 被 RSpec 惊呆了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/404887/
近年来,随着互联网革命爆发,第三届世界互联网大会的闭幕,一个互联网新风口让创业机会的不断新增,同时也改变了老企业的思想观念,走向互联网化是全球的一个大趋势。 从电商的逐步崛起,到o2o线上与线下的
我是一名优秀的程序员,十分优秀!