gpt4 book ai didi

ruby-on-rails - 用 mocha stub 时替换方法实现

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:26 25 4
gpt4 key购买 nike

我习惯了 RSpec,你可以在其中用一个 block 来 stub 一个方法实现,这个 block 是 evalueted lazily .

现在我正在处理一个使用 Test::Unit 和 mocha 的项目的拉取请求作为模拟库。

我需要能够做一些类似于 rspec 示例的事情,即将方法实现替换为依赖于对象状态的动态实现,所以我不能使用 mocha #returns 提供的静态调用> 方法。

有什么方法可以用 mocha 获得相同的功能,我找不到这方面的任何文档吗?

我需要实现类似的东西(RSpec 2.14 语法)

class SomeController < ApplicationController
before_filter :authenticate

def authenticate
# original method I need to replace
end

def some_other_method
:bar
end

end

describe SomeController do

before do
controller.stub :authenticate do
redirect_to root_path if some_other_method == :foo
end
end

it 'should test something' do
controller.stub(some_other_method: :foo)
get :index
response.should redirect_to root_path
end

it 'should test something else' do
get :index
response.should be_successful
end

end

最佳答案

你不能只在 controller 实例上使用 def 吗?

def controller.some_other_method
:foo
end

关于ruby-on-rails - 用 mocha stub 时替换方法实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26632845/

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