gpt4 book ai didi

ruby-on-rails - 在 rails 中使用 rspec 模拟/ stub Controller recaptcha 方法

转载 作者:行者123 更新时间:2023-12-04 02:23:29 28 4
gpt4 key购买 nike

我刚刚学习如何使用 stub 和模拟,我想模拟下面的 verify_recaptcha 方法来测试条件的两种结果。

我的 Controller 代码(DogMailsController)

      if verify_recaptcha(:model=>@email,:message=>"Verification code is wrong", :attribute=>"verification code")  
if DogMail.make_mail dog_mail_params
result = "success"
else
result = "fail"
end
else
flash.delete(:recaptcha_error)
flash.now[:error] = "Validation Failed. Please enter validation numbers/letters correctly at bottom."
render :action => 'new', :locals => { :@email => DogMail.new(dog_mail_params)}
end
end

到目前为止我的规范

context "when master not signed in" do 
context "when recaptcha verified" do
context "with valid params" do
it "should save the new dog mail in the database" do

expect{
post :create, dog_mail: attributes_for(:dog_mail)
}.to change(DogMail, :count).by(1)
end
end
context "with invalid params" do
end
end

为了对 verify_recaptcha stub /模拟,我应该在 expect 上面放什么?我尝试了 DogMailsController.stub(:verify_recaptcha).and_return(false) 但它似乎不起作用。

最佳答案

您只需要 stub controller.verify_recaptcha,因此使用 RSpec 3 语法:

allow(controller).to receive(:verify_recaptcha).and_return(true)

关于ruby-on-rails - 在 rails 中使用 rspec 模拟/ stub Controller recaptcha 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25349927/

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