ruby-on-rails-3 - 使用rspec在Rails中 stub 保存方法

标签 ruby-on-rails-3 rspec stub stubbing

我在 Controller 中执行以下操作:

def create
    @user = current_user
    @vin = @user.vins.new(params[:vin])

    if @vin.save
        # waiting for implementation
        logger.debug("here we are")
    else
        redirect_to(vins_path)
    end         
end

我想用rspec进行测试。但是,我想存盘保存操作以模拟失败:
it "should send user to vins_path if there is a problem creating the VIN" do
    @vin.stub!(:save).and_return(false)
    post 'create', :vin => { :name => "Test 1", :vin => "test" }
    response.should redirect_to(vins_path)
end

但是,该 stub 似乎不起作用,因为保存操作总是成功的。我究竟做错了什么?

谢谢

最佳答案

试试这个:

Vin.any_instance.stub(:save).and_return(false)

关于ruby-on-rails-3 - 使用rspec在Rails中 stub 保存方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14554573/

相关文章:

ruby-on-rails-3 - 要在查询中逐个元素评估的两个数组

mysql - 2 个 Rails 应用程序使用 1 个 MySQL 数据库 - 有哪些风险?

rspec - 如何使用 capybara 选择select2下拉字段

ruby-on-rails - 如何编写远程请求规范?

ruby-on-rails - 测试多态注释 Controller Rspec 中的创建操作 - 未定义方法 `comments' 为 nil :NilClass

C 单元测试 : stubbing fread/fwrite functions

javascript - sinon: stub 一个没有附加到对象的函数

jquery - 用于用户帖子的 Rails ajax fav 按钮

ruby-on-rails - rails 3 : How not to include column's name in a validation message without plugins?

rspec - 在 RSpec 中,是否有相当于 "unstub"但针对 "should_receive"的方法?