gpt4 book ai didi

erlang - 使用 meck 多次调用具有相同参数的相同方法

转载 作者:行者123 更新时间:2023-12-04 22:44:53 24 4
gpt4 key购买 nike

我知道使用 ruby​​/rspec,您可以执行以下操作,以便为对该方法进行的不同调用接收不同的返回值:

allow(double).to receive(:msg).and_return(value1, value2, value3)

我只能使 meck stub 成为一种具有一个返回值的方法,如下所示:
meck:expect(module, some_method, fun() -> ok end)

有没有办法让它在第一次调用时返回 ok ,然后在第二次调用时返回 ok2

最佳答案

为此,您可以使用 Meck 中的两个快捷方式:

  • meck:sequence/4 此函数返回序列中的每个元素,直到最后一个元素。然后,无限期地返回最后一个元素。
    6> meck:sequence(module, some_method, 0, [ok, ok2]).
    ok
    7> module:some_method().
    ok
    8> module:some_method().
    ok2
    9> module:some_method().
    ok2
  • meck:loop/4 此函数返回循环中的每个元素。当最后一个元素返回时,它从第一个开始。
    10> meck:loop(module, some_method, 0, [ok, ok2]).
    ok
    11> module:some_method().
    ok
    12> module:some_method().
    ok2
    13> module:some_method().
    ok
  • 关于erlang - 使用 meck 多次调用具有相同参数的相同方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31480511/

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