【发布时间】:2018-12-09 01:04:58
【问题描述】:
我有一个名为 set_current_user 的环绕 action_action
def set_current_user
CurrentUser.set(current_user) do
yield
end
end
在 CurrentUser 单例中
def set(user)
self.user = user
yield
ensure
self.user = nil
end
我不知道如何将产量存根,并且没有调用方法的确保部分
理想情况下,我想做类似的事情
it 'sets the user' do
subject.set(user)
expect(subject.user).to eql user
end
我遇到了两个错误
- 没有给出块
- 当我通过一个块时,
self.user = nil会被调用
- 当我通过一个块时,
提前致谢
【问题讨论】:
-
block_given?方法可以在你的方法中使用来判断是否提供了一个块。 ruby-doc.org/core-2.5.3/Kernel.html#method-i-block_given-3F
标签: ruby unit-testing rspec rspec-rails