当我们写这两个陈述时有什么区别
给出
/^I see "(.*?)" field$/ do |text|
page.has_content?(text)
和 鉴于
/^I see "(.*?)" field$/ do |text|
page.has_content?('text')
答案 0 :(得分:0)
不同之处在于传递给has_content?
方法的值。
在示例中:
Given /^I see "(.*?)" field$/ do |text|
page.has_content?(text)
text
是一个变量,它包含在Cucumber步骤中匹配的字符串 - 即引号之间的文本。
在第二个例子中:
Given /^I see "(.*?)" field$/ do |text|
page.has_content?('text')
'text'
是一个值为'text'的字符串。它永远是那个价值。
让我们假设您的功能包含以下步骤:
Given I see "my" field`
然后,您的第一个示例page.has_content?(text)
将检查页面上是否有“my”文本。相反,您的第二个示例page.has_content?('text')
将始终检查页面上是否包含文本“text”。基本上,您的第二个示例是对has_content?
方法进行硬编码以始终查找特定文本(而不是使用Cucumber步骤中指定的文本)。