小编ibp*_*pix的帖子

如何在 Rspec 中为特定参数存根方法

我正在尝试存根这样的方法:

allow(Flipper).to receive(:enabled?).with(:premium_plus_features_beta).and_return(false)
Run Code Online (Sandbox Code Playgroud)

但是当它遇到不同的参数时 - 它会给我一个像这样的错误:

  #<Flipper (class)> received :enabled? with unexpected arguments
          expected: (:premium_plus_features_beta)
               got: (:non_advertiser_profile_amp, {:lawyer_id=>4469860})
       Diff:
       @@ -1,2 +1,2 @@
       -[:premium_plus_features_beta]
       +[:non_advertiser_profile_amp, {:lawyer_id=>4469860}]
Run Code Online (Sandbox Code Playgroud)

我通常不会存根这么多,但是为什么当我明确地告诉它参数时,为什么它会在不同的参数上出错?他们显然不一样。这只是一些语法问题吗?

编辑1

我尝试了这个,但不起作用 https://makandracards.com/makandra/30543-rspec-only-stub-a-method-when-a-pspecial-argument-is-passed

Flipper.should_receive(:enabled?).and_call_original
Flipper.should_receive(:enabled?).with(:premium_plus_features_beta).and_return(false)
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails

3
推荐指数
1
解决办法
5482
查看次数

如何“获取”Ruby 数组的元素 1 到 4

我有一个对象数组,想要获取第 1 项到第 4 项,但take不接受范围。

user.addresses.take(1...4)
Run Code Online (Sandbox Code Playgroud)

有什么办法可以达到这个目的呢?在 Rails 中,如果添加了一些 ActiveSupport,我也可以使用它。

ruby ruby-on-rails

1
推荐指数
1
解决办法
850
查看次数

标签 统计

ruby-on-rails ×2

rspec ×1

ruby ×1