【发布时间】:2016-06-23 00:36:59
【问题描述】:
所以我对 Rails 非常陌生,并且在使用 RSpec 时遇到了一些困难,特别是嘲笑某些事情。所以我有一个我的一些控制器正在使用的模块(关注点)。该模块 (ValidateAdmin) 调用其中的另外两个函数 current_user 和 logged_in_user。为了涵盖大多数可能性,我想存根这两个函数并设置它们的返回值。关于如何使这项工作的任何建议?
describe ValidateAdmin do
before :all do
class FakeController < ApplicationController
include ValidateAdmin
end
end
let(:controller) { FakeController.new }
describe '#validate_admin_logged_in' do
controller.stub(:current_user).and_return(instance_double(User, admin?: true))
controller.stub(:logged_in_user).and_return(instance_double(User, admin?: true))
[RSpec contexts go here]
编辑 - 通过在“之前”块中包含我的模拟语句来修复它。也刚刚意识到存根已被弃用,因此切换到允许语句。
【问题讨论】:
-
您当前的代码现在会发生什么?
-
@MohammadAbuShady 很抱歉没有把它放在问题中,我有点匆忙。它抛出了一个非常奇怪的错误,尽管我通过将它包含在“之前”块中来修复它。我犯了一个愚蠢的错误,但感谢您的回复。
标签: ruby-on-rails ruby rspec