0

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

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

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

4

2 回答 2

0

因此,这里有多种工具可供您使用。

#all_there?将检查是否所有声明的元素都在页面上。此外,这可以通过使用 DSL 语句来限制,例如.expected_elements

我建议你回到过去 6-9 个月内有很多新信息的 README 并检查它。

在范围方面,因此存在用户和管理员的概念,这也很容易使用 ENV 哈希中的变量进行分区并相应地设置 url。在 SitePrism docs/Github 上再次有关于此的文档。

如果您觉得这仍然不起作用或存在问题,请在此处打开问题请求:https ://github.com/natritmeyer/site_prism/issues

于 2019-02-22T14:56:00.017 回答
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
于 2021-01-18T15:37:21.417 回答