我正在尝试存根这样的方法:
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)
我通常不会存根这么多,但是为什么当我明确地告诉它参数时,为什么它会在不同的参数上出错?他们显然不一样。这只是一些语法问题吗?
我尝试了这个,但不起作用 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) 我有一个对象数组,想要获取第 1 项到第 4 项,但take不接受范围。
user.addresses.take(1...4)
Run Code Online (Sandbox Code Playgroud)
有什么办法可以达到这个目的呢?在 Rails 中,如果添加了一些 ActiveSupport,我也可以使用它。