2017-10-12 93 views
0

一个静态方法我有一个静态类Exec用方法doSomething的(对于)惩戒使用不同的参数和不同的结果

现在我想模拟它用于下列操作,以便2调用或由一个任意的顺序。

Exec.stub(:doSomthing).with('a').and_return('called with a') 
Exec.stub(:doSomthing).with('b').and_return('called with b') 

我得到错误

Please stub a default value first if message might be received with other args as well. 

请问该如何解决呢?

注:这上面的代码仅仅是伪代码,而不是我真正的代码

+0

请注意,在Ruby中,您应该拥有“do_something”形式的方法名称,因为大写字母保留用于“ClassName”和“CONSTANT_NAME”情境。 – tadman

+0

您是否需要先调用'Exec.stub(:doSomthing){}'? – tadman

+0

不,只有Exec.doSomething('a)和Exec.doSoemthing('b')调用是预期的,所以我为这两个调用而训练。 – user93796

回答

1

你可以这样说:如果你需要你的规格时,该方法失败

allow(Exec).to receive(:doSomthing).with('a').and_return('called with a') 
allow(Exec).to receive(:doSomthing).with('b').and_return('called with b') 

使用expect代替allow根本没有被叫到。