0
我想重构我的代码,从潜在的三行到只有一行。水豚/ RSpec - 检查数组的内容
这里的片段:
# capture an array of the three stats: impressions/clicks/AVT
stats = page.all('.sub')
# check our array....
expect(stats[0]).to have_content("Impressions")
expect(stats[1]).to have_content("Clicks")
expect(stats[2]).to have_content("Average")
我所需要的水豚have_content
与RSpec的contain_exactly
的平衡。
喜欢的东西:
expect(stats).to contain_exactly("Impressions", "Clicks", "Average")
导致:
Failure/Error: expect(stats).to contain_exactly("Impressions", "Clicks", "Average")
expected collection contained: ["Average", "Clicks", "Impressions"]
actual collection contained: [#<Capybara::Element tag="div" path="/html/body/div[2]/div[2]/div/div[1]/div[1]/div[1]">, #<Capybara::Element tag="div" path="/html/body/div[2]/div[2]/div/div[1]/div[2]/div[1]">, #<Capybara::Element tag="div" path="/html/body/div[2]/div[2]/div/div[1]/abbr/div[1]">]
the missing elements were: ["Average", "Clicks", "Impressions"]
the extra elements were: [#<Capybara::Element tag="div" path="/html/body/div[2]/div[2]/div/div[1]/div[1]/div[1]">, #<Capybara::Element tag="div" path="/html/body/div[2]/div[2]/div/div[1]/div[2]/div[1]">, #<Capybara::Element tag="div" path="/html/body/div[2]/div[2]/div/div[1]/abbr/div[1]">]
如何将一个重构呢?
像魅力一样工作,除了现在我认为我只为自己创造了更多的工作,因为这3个关键字是更大的动态字符串的一部分,因此不会在“contains_完全“断言。 IE“总体印象0”。 – ilrein
看看我的更新是否解决了你的'新'问题 – sjaime