Protactor:我应该在我的PageObject中放置断言吗?

时间:2015-09-14 22:21:49

标签: angularjs testing protractor pageobjects e2e-testing

我有多种场景,我想测试几乎相同的东西。

我正在测试一个后台,我有小部件(例如自动完成搜索)。我想确保小部件没有被破坏,因为:

  1. 我只是浏览文章页面
  2. 我保存了重新加载页面的文章的一部分
  3. 1 + 2然后我玩了一些其他可能有副作用的小部件
  4. ...
  5. 我的第一个尝试是在我的WidgetPO中添加一些可重用的方法(testWidgetStillWorksX~)

    浏览子喷气机后:有一些专业人士和http://martinfowler.com/bliki/PageObject.html

    中提到的关于这个主题的缺点

    那么你如何处理/你在哪里进行可重复使用的测试?这两种方法有哪些困难/优势?

1 个答案:

答案 0 :(得分:1)

你的问题太广泛了。使用PageObject模型编写测试的最佳方法是从PageObject文件中排除断言。简而言之,这是一个小小的解释 -

困难 -

  • 断言始终是测试用例/脚本的一部分。因此,最好将它们放在您编写的脚本中。
  • PageObject中的断言扰乱了代码的模块性和可重用性。
  • 在页面对象中编写/扩展常规功能的难度。
  • 第三个人需要每次都从测试脚本转到你的页面对象来检查你的断言。

优点 -

  • 您总是可以在pageObject中添加执行重复任务的方法/函数,这些方法执行某些操作(比如等待元素加载,获取元素的文本等等),而不是断言并返回一个值。
  • 从测试中调用PageObject的函数,并使用它们返回的值在测试中执行断言。
  • 测试脚本中的断言易于阅读和理解,无需担心页面对象的实现。

Here's a good article of pageobjects。希望这会有所帮助。