【发布时间】:2014-03-29 01:50:25
【问题描述】:
我实现了一个基于 Mongoid 的活动日志机制,将事件保存在 MongoDB 中。
Mongoid 模型 Activity 具有 after_create 事件,这些事件根据记录的活动类型执行不同的任务:(简化示例)
class Activity
include Mongoid::Document
after_create do |activity|
method_name = "after_#{activity.event_type}"
send(method_name) if respond_to? method_name
end
def after_user_did_something
MyItem.create!(:type => :user_did_something)
end
end
测试看起来像这样:
it 'should hide previous [objects] create a new updated one' do
2.times do
user.log_activity(:user_did_something)
end
items = MyItems.where(:type => :user_did_something)
items.count.should == 2
end
end
有时,测试在 items.count 为 0 而不是 2 时失败。
仅当从命令行运行时才会发生这种情况rspec spec
仅运行此测试或使用 Guard 运行所有测试时,它永远不会发生。
【问题讨论】:
-
你能提供
log_activity代码吗?
标签: ruby-on-rails mongodb activerecord rspec