gpt4 book ai didi

ruby-on-rails - 如何在 cucumber 中 stub 方法?

转载 作者:数据小太阳 更新时间:2023-10-29 07:53:53 25 4
gpt4 key购买 nike

我想在 SubmissionsController 中删除 space_available_mb 方法,以便它返回 5。这不起作用。它返回真实硬盘上的正确空间。

如果 space_available_mb 被注释掉,则会抛出预期错误,这意味着 should_receive 可以正常工作。但是,它不会返回 5,而是返回实数,这意味着 and_return 由于某种原因失败。

进一步的调试显示 and_return 实际上被调用了,但只是在该方法运行并返回实数之后。

Scenario: Hard Disk Space is low on new submission
Given I am on the new_submission page
And hard disk space is low
Then I should see "Low disk space!"

Given /^hard disk space is low$/ do
SubmissionsController.should_receive(:space_available_mb).and_return(5)
end

class SubmissionsController < ApplicationController
include FileManager

def new
space = space_available_mb
...
end
end

module FileManager
def space_available_mb
...
end
end

最佳答案

根据模拟框架,语法会有所不同,但您要完成的是在 Controller 的任何实例 上添加一个方法。在 RSpec 中,你有 this .所以根据你的尝试:

Given /^hard disk space is low$/ do
SubmissionsController.any_instance.should_receive(:space_available_mb).and_return(5)
end

如果你打算使用任何其他模拟框架,那么一定会有像 RSpec 的 any_instance 这样的方法。

关于ruby-on-rails - 如何在 cucumber 中 stub 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9390220/

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