场景测试中的多个期望

Multiple expects within scenario test

我有一个场景测试:

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 吗?

如果这不是一个用户流,那么它们应该是分开的 features/scenarios。在测试中多次设置同一选择器的期望值时,您还需要小心,您已经检查过它已经消失(如果您正在检查它再次出现),否则您可能会在测试不应该通过时结束测试t 由于时序和异步行为问题。

此外 - 由于您正在检查 CSS 选择器,您可能希望使用 have_css 而不是 have_selector 因为它读起来更好并且意味着测试继续工作如果默认选择器类型从 :css