rspec访问新类型作为变量

时间:2018-03-15 00:27:43

标签: rspec rspec-rails keynote

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中的变量。如何presenterviewcontroller相同?

1 个答案:

答案 0 :(得分:0)

您可以为自定义目录添加元数据,如下所示:

RSpec.configure do |config| config.define_derived_metadata(:file_path => Regexp.new('/spec/presenters/')) do |metadata| metadata[:type] = :presenter end end

我不确定你实际上想要实现的目标。您期望上面引用的演示者变量到底是什么?如果你想模拟或存根对象,你最好不要特别关注这些对象是什么。