Rails测试,仅针对某些测试进行设置

时间:2016-06-07 08:18:37

标签: ruby-on-rails testing minitest

我们正在向Rails应用程序编写测试,我们需要测试一个控制器,我们几乎每个请求都会传递一个标头,但不是全部。

您传递了标头设置setup,但我们只想在某些测试中执行此操作,而不是全部,因此在interface MyService{ @PreAuthorize() void foo(){ } 中使用此行不是一个选项,但我们认为不正确每发出一次请求,重复20或30次。

我们怎么能实现这个目标?

1 个答案:

答案 0 :(得分:1)

如果您正在使用rspec,则可以将它们分成两个不同的上下文,然后针对该上下文执行before

describe MyController do 
  context 'with specific header' do 
    before :all do 
      @request.headers['my-header'] = 'my-header-content'
    end
  end

  context 'other context' do
     #Tests without context
  end
end

如果你正在使用minitest,你可以随时将测试分成几类。然后将一个类设为特定标题,将另一个类设置为其他测试。