我如何检查CSS类是按钮点击后添加到div?
我有类“BTN-成功”和模态形式的按钮,它在默认情况下不具有“秀”类,但点击按钮后,“秀”类添加到模态。
我的测试:
it 'shows up popup with form' do
modal_window = page.find('#data-modal')
expect(modal_window[:class]).not_to include('show')
page.find('.btn-success').click
expect(modal_window[:class]).to include('show')
end
我的Gemfile:
group :development, :test do
gem 'rspec-rails', '~> 3.8'
gem 'factory_bot_rails'
gem 'rails-controller-testing'
gem 'webmock'
gem 'capybara'
gem 'selenium-webdriver'
gem 'rails-controller-testing'
end
做的正是你问什么,最简单的解决办法是这样的
it 'shows up popup with form' do
expect(page).not_to have_css('#data-modal.show')
page.find('.btn-success').click
expect(page).to have_css('#data-modal.show')
end
然而,你真的不应该测试特定类别的功能测试的存在。相反,你应该测试,模态实际上出现。由于这是JS驱动的行为这将意味着确保您的测试与JS能够驱动运行,确保您没有设置Capybara.ignore_hidden_elements
为false,然后做
it 'shows up popup with form' do
# Should initially be hidden so won't be found
expect(page).not_to have_css('#data-modal')
page.find('.btn-success').click
# Should now be found
expect(page).to have_css('#data-modal')
end