我的所有课程都可以成为单身人士吗?

时间:2013-05-16 13:56:23

标签: singleton selenium-webdriver gui-testing pageobjects

我正在实施一个项目,我正在测试我的UI。因此,我的UI的每个部分都是一个单独的类(Seleniums页面对象模式)。现在,因为它只是我正在测试的一个网页,据我说,只需要我的UI组件的一个实例,虽然他们确实改变了状态,但我没有看到这些组件的多个实例的好处在于

所以,我很想让所有人都成为单身,这是一种不好的做法吗?

例如 -

| ---------------------------------------------- --------------- |
| |
| |
| ------------------------------------------------- ------------ |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| ------------------------------------------------- ------------ |

所有这些部分都将在整个用户会话中保留在我的页面上,但它们可能会更改状态,例如切换,调整大小,更改其中的数据等。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

页面对象gem(通过Ruby)实现的一个想法是使用页面工厂类型的对象封装页面类的实例化。特别是,这是'on_page'方法,用法就像

on_page(MyPageClass) do |page|
  page.do_actions
end

提供的块应该有一个参数,工厂中创建的实例将传递给该参数。

也许你可以采用类似的想法。在我看来,最好有页面类的实例;我的理由是你的页面类操作应该是“无记忆的”。