【发布时间】:2015-03-03 17:05:30
【问题描述】:
我在 User 模型上实现了 last_active_at 属性,每次用户访问网站上的页面时都会更新该属性。
当尝试在日期时间上使用模拟测试此属性的设置时,我得到一个NoMethodError: undefined method 'expect' for DateTime:Class。
这是我在文件 chapter_controller_test.rb 中的测试:
test "save user last activity timestamp" do
user = FactoryGirl.create(:user, student_type: User::REMOTE)
session[:user_id] = user.id
some_date = DateTime.new(2014, 12, 12, 1, 1, 1)
DateTime.expect(:now, some_date)
get :index
assert_equal(some_date, user.last_active_at)
end
以及 ApplicationController 中的实现:
before_filter :record_activity
def record_activity
if current_user && current_user.remote?
current_user.last_active_at = DateTime.now
current_user.save
end
end
我正在使用 minitest 5.1
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby datetime mocking minitest