我正在尝试使用Cucumber检查网页上的过滤器功能。如果我检查特定的电影评级,那么它应该只显示表格中那些评级的电影。这是我的情景:
When I check the following ratings: 'PG', 'R'
And I press Refresh
Then I should not see /PG/
这是我的步骤定义:
Then /^(?:|I )should not see \/([^\/]*)\/$/ do |regexp|
regexp = Regexp.new(regexp)
if page.respond_to? :should
page.should have_no_xpath('//*', :text => regexp)
else
assert page.has_no_xpath?('//*', :text => regexp)
end
end
但是我收到了“模糊匹配”错误。
以下是一些重要的HTML:
<table id='movies'>
<thead>
<tr>
<th>Movie Title</th>
<th>Rating</th>
<th>Release Date</th>
<th>More Info</th>
</tr>
</thead>
<tbody>
<tr>
<td>Aladdin</td>
<td>G</td>
<td>1992-11-25 00:00:00 UTC</td>
<td><a href="/movies/1">More about Aladdin</a></td>
</tr>
谢谢!
答案 0 :(得分:0)
问题不在于您在此处定义的步骤,而在于您已在其他地方定义了与其中一个步骤冲突的步骤。如果在这里有意义,或者创建一个不冲突的步骤,您应该重用该步骤。
答案 1 :(得分:0)
正如michaeltwofish所说。您可能已经定义了一个执行相同操作的步骤。尝试删除其中一个步骤。
如果您有重复的方法/定义。用“And”定义一个定义,用“Then”定义另一个定义相同的东西算作同一个方法。
和/ When / Then / Given基本上是一回事。他们的服务器只是为了让用户故事流程更具可读性
希望这些额外信息有所帮助。