如何测试其内容与用户在Capybara,SitePrism中的权限不同的一个页面

时间:2018-04-20 14:21:56

标签: ruby capybara minitest site-prism

使用SitePrism在Ruby,Capybara中创建测试。我遇到过一种情况,我有一个网站,但网站的内容取决于用户拥有的权限。例如,菜单中的元素“admin”仅对管理员e.t.c可见。一个主要的区别是管理员有自己的子域名,如admin.example.com(普通用户的站点是example.com)。

我必须从管理员和用户的角度测试它,我想避免创建两个几乎相同的页面对象。

有没有正确的方法来解决这个问题?

2 个答案:

答案 0 :(得分:0)

因此,这里有各种各样的工具可供您使用。

#all_there?将检查页面上是否所有声明的元素。此外,可以通过使用.expected_elements

之类的DSL语句来限制这种情况

我建议您返回自述文件,该文件在过去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