场景测试中有多个期望

时间:2016-09-16 16:52:35

标签: ruby-on-rails ruby capybara integration-testing scenarios

我有一个情景测试:

scenario 'displays the form' do
  # Build the setup for user coming from an external site.
  expect(page).to have_selector('#braintree-dropin-frame', count: 1)

  # User reloads the page
  expect(page).to have_selector('#braintree-dropin-frame', count: 1)

  # User visits page from within the website.
  expect(page).to have_selector('#braintree-dropin-frame', count: 1)
end

首先,这是场景测试的正确用法吗?我基本上测试同样的东西,但在不同的场景中。我觉得这应该是一个上下文块中的三个单独的场景测试。我误用了scenario吗?

1 个答案:

答案 0 :(得分:1)

如果这不是一个用户流,那么它们应该是单独的功能/方案。在您已经检查过的测试中多次设置对同一选择器的期望时,您还需要小心(如果您再次检查它再次出现),否则您最终可能会在测试时通过由于时间和异步行为问题,不应该这样做。

此外 - 由于您正在检查CSS选择器,您可能希望使用have_css而不是have_selector,因为它读取更好并且意味着如果默认选择器类型,测试仍然有效永远改变自:css