按https://relishapp.com/rspec/rspec-rails/docs/directory-structure,我们可以定义一个新类型。目前,我正在使用keynote
(MVP for rails),所以有一个新类型:presenter
如果我定义
RSpec.configure do |config|
config.infer_spec_type_from_file_location!
end
但是,如果我做了类似
的事情expect(presenter).to receive(:current_user).and_return(user)
rspec报告
NameError: undefined local variable or method `presenter'
但正如我们所知,
expect(view).to receive(:current_user).and_return(user)
此处view
是rspec中的变量。如何presenter
与view
或controller
相同?
答案 0 :(得分:0)
您可以为自定义目录添加元数据,如下所示:
RSpec.configure do |config|
config.define_derived_metadata(:file_path => Regexp.new('/spec/presenters/')) do |metadata|
metadata[:type] = :presenter
end
end
我不确定你实际上想要实现的目标。您期望上面引用的演示者变量到底是什么?如果你想模拟或存根对象,你最好不要特别关注这些对象是什么。