没有js的上下文之前的rspec

时间:2016-11-30 21:49:16

标签: ruby-on-rails rspec

在功能测试中,我有2个功能宏:sign_inadd_to_cart。用户在没有JS的情况下登录,但对于add_to_cart,需要JS宏。

规格:

  describe 'User add product in cart' do
      before { sign_in(user) }

      scenario 'and view cart stuff' do

        add_to_cart(product, 2)
        visit cart_path

      end
  end

功能宏

module FeaturesMacros
  def sign_in(user)
    visit sign_in_path 
    fill_in 'Email', with: user.email
    fill_in 'Password', with: user.password
    click_button 'Sign in'
  end


  def add_to_cart(product, quantity)
    visit product_path(id: product.id)
    fill_in 'line_item_quantity', with: quantity
    click_button 'Add to Cart'
  end
end

当我在没有JS的情况下运行测试时,错误是

  

ActionController :: UnknownFormat:LineItemsController #creore缺少此请求格式和变体的模板。

如果我添加JS for scenario 'and view cart stuff', js: true do,我在用户登录时出错:

  

失败/错误:访问sign_in_path。

如何在场景中添加JS,但是将其从before上下文中删除?也许有更好的方法?

0 个答案:

没有答案