1
不太确定这里发生了什么。我正在从我的另一个项目中移出一些代码,并突然从之前的相同规格中产生新项目中的错误。所有的错误似乎围绕调用存根方法。这里有一个例子测试:Rspec存根导致摩卡错误
it "retrieves active workers from Redis" do
@monitor.should_receive(:monitor_running?).and_return(false)
REDIS.should_receive(:smembers).with('leaderboard-workers').and_return([])
@monitor.perform
end
这个工程。但是如果我切换第一测试线这样的:
@monitor.stub(:monitor_running?).and_return(false)
我结束了以下错误:
1) LeaderboardMonitor#perform retrieves active workers from Redis
Failure/Error: @monitor.stub(:monitor_running?).and_return(false)
Mocha::ExpectationError:
unexpected invocation: #<Mock:0x7fcc18c8bab8>.and_return(false)
satisfied expectations:
- allowed any number of times, not yet invoked: #<Mock:0x7fcc18c8bab8>.monitor_running?(any_parameters)
# ./spec/workers/leaderboards/leaderboard_monitor_spec.rb:58:in `block (3 levels) in <top (required)>'
我不太清楚是怎么回事。这是摩卡重写存根方法的问题吗?我该如何解决这个问题?!?!?
你在同一个项目中使用RSpec和摩卡吗?也许这会有所帮助? https://www.relishapp.com/rspec/rspec-core/v/2-7/docs/mock-framework-integration/mock-with-mocha – zetetic 2013-03-29 01:30:15
我不使用摩卡,但它是其他宝石的依赖。虽然没有用它来进行我的测试。 – 2013-03-29 21:47:05