0

通过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 中的一个变量。如何制作与orpresenter相同的方式?viewcontroller

4

1 回答 1

0

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

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

我不确定你实际上想要达到什么目的。您希望上面引用的 Presenter 变量是什么?如果您想模拟或存根对象,您最好非常具体地了解这些对象是什么。

于 2018-03-15T22:10:34.460 回答