场景测试中的多个期望
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
我有一个场景测试:
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