如何在RSpec

时间:2018-06-03 14:09:45

标签: ruby-on-rails rspec

我使用提交者类来清理我在Rails中的视图。现在我正在尝试为这些类编写单元测试,但它们本身并不受RSpec的支持,因为它们是PORO的。

他们看起来像:

class AccountPresentor < ExtendedSimpleDelegator
  alias_method :account, :__getobj__

  def name_link
    @view.link_to name, account
  end
end

我写了这样的单元测试:

require "rails_helper"

describe AccountPresentor do
  let(:account) { create(:account) }
  let(:user) { create(:user) }
  let(:presentor) { AccountPresentor.new(account, user, ActionController::Base.new.view_context)}

  describe "displays name link" do
    subject { presentor.name_link }
    it { is_expected.to include account_path(account) }
  end
end

AccountPresentor类的第三个参数应该是视图上下文。我发现直接在ActionController类上调用它似乎首先起作用,但在调用link_to等辅助方法时会出现一些问题

这会导致以下错误:

ArgumentError:
       arguments passed to url_for can't be handled. Please require routes or provide your own implementation

知道如何解决这个问题吗?

0 个答案:

没有答案