0

我想should_receive用作 RSpec 中规范的主题。换句话说,我不想测试 a should ==,而是想测试另一个类是否接收到方法调用。

我想写的是这样的:

describe '#methodOne' do

  subject { ClassTwo }

  it { should_receive(:methodTwo) }

  ClassOne.methodOne

end

这可能吗?

4

3 回答 3

3

有一些方法可以扭曲 RSpec 来做这样的事情,但它并没有按照它的意图使用 RSpec。 should_receive设置将调用方法的模拟期望。it单行语法没有意义。

我建议您从基本describe/结构开始,只有在出现重复it时才重构为更高级的结构(主题、单行)。it

于 2012-07-10T14:29:43.720 回答
1

所以我是这样做的:

describe "#methodOne" do

  it "calls the appropriate method" do

    ClassTwo.should_receive(:methodTwo)
    ClassOne.methodOne

  end

end

这很好用

于 2012-07-10T15:13:14.980 回答
-1

我会以实例变量的形式使用主题:

@subject.should_receive(:methodTwo)
于 2012-07-10T14:20:54.403 回答