使用SitePrism在Ruby,Capybara中创建测试。我遇到过一种情况,我有一个网站,但网站的内容取决于用户拥有的权限。例如,菜单中的元素“admin”仅对管理员e.t.c可见。一个主要的区别是管理员有自己的子域名,如admin.example.com(普通用户的站点是example.com)。
我必须从管理员和用户的角度测试它,我想避免创建两个几乎相同的页面对象。
有没有正确的方法来解决这个问题?
答案 0 :(得分:0)
因此,这里有各种各样的工具可供您使用。
#all_there?
将检查页面上是否所有声明的元素。此外,可以通过使用.expected_elements
我建议您返回自述文件,该文件在过去6到9个月内有很多新信息并进行检查。
在范围界定方面,存在用户和管理员的概念,这也很容易使用ENV哈希中的变量进行分区,并相应地设置url。再次在SitePrism docs / Github上有关于此的文档。
如果您觉得仍然无法解决问题,请在此处打开问题请求:https://github.com/natritmeyer/site_prism/issues
答案 1 :(得分:0)
class ExamplePage < SitePrism::Page
...
element :test_element, '#test_element'
...
end
...
let!(:example_page) { ExamplePage.new }
context 'situation 1' do
it 'displays test_element' do
...
expect(example_page).to have_test_element
end
end
context 'situation 2' do
it 'displays test_element' do
...
expect(example_page).to_not have_test_element
end
end