gpt4 book ai didi

ruby-on-rails - RSpec any_instance 弃用 : how to fix it?

转载 作者:数据小太阳 更新时间:2023-10-29 06:22:08 31 4
gpt4 key购买 nike

在我的 Rails 项目中,我使用 rspec-mocks 和 any_instance 但我想避免这个弃用消息:

使用 rspec-mocks 的旧 :should 语法中的 any_instance 而不显式启用该语法已被弃用。使用新的 :expect 语法或明确启用 :should。

这是我的规范:

describe (".create") do
it 'should return error when...' do
User.any_instance.stub(:save).and_return(false)
post :create, user: {name: "foo", surname: "bar"}, format: :json
expect(response.status).to eq(422)
end
end

这是我的 Controller :

def create
@user = User.create(user_params)
if @user.save
render json: @user, status: :created, location: @user
else
render json: @user.errors, status: :unprocessable_entity
end
end

我想使用新的 :expect 语法,但找不到如何正确使用它。

我正在使用 RSpec 3.0.2

最佳答案

使用allow_any_instance_of :

describe (".create") do
it 'returns error when...' do
allow_any_instance_of(User).to receive(:save).and_return(false)
post :create, user: {name: "foo", surname: "bar"}, format: :json
expect(response.status).to eq(422)
end
end

关于ruby-on-rails - RSpec any_instance 弃用 : how to fix it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24595203/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com