2014-03-05 29 views
0

我使用的水豚进行验收测试和我有几个场景,在这里我需要测试,如果一个页面重新加载与否:如何测试在Rails/Capybara中重新加载页面?

1)如果我离开一个搜索输入字段为空,然后点击搜索图标我想验证没有任何反应,尤其是页面没有重新加载。

2)在结果页面上,我有三个结果排序选项。当我点击一个排序按钮时,页面会重新加载所选的分类标准。点击使用Capybara甚至纯JavaScript的元素时遇到了一些麻烦,因此我检查元素是否被点击的方法是检查页面是否已被重新加载。那我该怎么做?

+0

我认为你试图修复的症状更广泛的问题。我会专注于解决用水豚点击元素的问题。水豚是为了这些行动而制造的,你不能点击物品的事实表明你应该研究一些东西。 – lsaffie

+0

我绝对同意你的看法,我确实需要调查水豚点击问题。但是,这只是两个示例中的一个,我还有其他一些场景,我想知道一个页面是否已重新加载。 –

+0

水豚的方式是通过查看页面上的项目。基于重新加载,页面中是否存在应该或不应该存在的元素? (表格,div,id等)如果是这样,你可以检查他们的存在或缺乏。 – lsaffie

回答

0

一种方法是添加一个类基于排序标准,并测试其存在的表(或其他元素):

page.find_by_css('table.sort_by_foo').should be 
+0

我假设你正在使用rspec和''应该是''。如果需要调整。 – noel

+0

非常感谢这个建议,但我真的对测试页面重新加载感兴趣,而不是解决这个特定的例子。尽管如此,再次感谢你。 –

+0

我的意思是创建一个初始条件(一个默认类),并在页面重新加载时使用更具体的搜索或排序条件进行更改。创建你需要的指标,然后用Capybara测试它的存在。它会告诉你页面是否重新加载。这感觉太简单了,但有时候简单的方法是最好的。 – noel