量角器:我应该在我的页面对象中放置断言吗?
Protactor: should I put assertions in my PageObject?
我有多个场景,我想在其中测试几乎相同的东西。
我正在测试后台并且我有小部件(例如自动完成搜索)。我想确保小部件没有损坏,因为:
- 我刚刚浏览了一个文章页面
- 我保存了文章的一部分,重新加载了页面
- 1+2 然后我玩了一些可能有副作用的其他小部件
- ...
我的第一个挑战是向我的 WidgetPO 添加一些可重用的方法 (testWidgetStillWorksX ~)
浏览主题后:如 http://martinfowler.com/bliki/PageObject.html
中所述,该主题有一些优点和缺点
那么,您如何处理/将可重复使用的测试放在哪里?difficulties/advantages 您使用这两种方法时遇到的问题是什么?
您的问题过于宽泛,无法回答。使用 PageObject 模型编写测试的最佳方法是从 PageObject 文件中排除断言。简而言之,这里有一个小解释 -
困难-
- 断言始终是测试的一部分 case/script。所以最好把它们放在你写的脚本里。
- PageObject 中的断言扰乱了代码的模块化和可重用性。
- 页面对象中的 writing/extending 通用函数有困难。
- 第三方每次都需要从测试脚本转到您的页面对象来检查您的断言。
优势 -
- 您始终可以添加 methods/functions 在您的 pageObject 中执行重复性任务,该对象执行一些操作(例如等待元素加载、获取元素的文本等...),而不是断言和 returns一个值。
- 从您的测试中调用 PageObject 的函数,并使用它们的返回值在您的测试中执行断言。
- 测试脚本中的断言易于阅读和理解,无需担心页面对象的实现。
我有多个场景,我想在其中测试几乎相同的东西。
我正在测试后台并且我有小部件(例如自动完成搜索)。我想确保小部件没有损坏,因为:
- 我刚刚浏览了一个文章页面
- 我保存了文章的一部分,重新加载了页面
- 1+2 然后我玩了一些可能有副作用的其他小部件
- ...
我的第一个挑战是向我的 WidgetPO 添加一些可重用的方法 (testWidgetStillWorksX ~)
浏览主题后:如 http://martinfowler.com/bliki/PageObject.html
中所述,该主题有一些优点和缺点那么,您如何处理/将可重复使用的测试放在哪里?difficulties/advantages 您使用这两种方法时遇到的问题是什么?
您的问题过于宽泛,无法回答。使用 PageObject 模型编写测试的最佳方法是从 PageObject 文件中排除断言。简而言之,这里有一个小解释 -
困难-
- 断言始终是测试的一部分 case/script。所以最好把它们放在你写的脚本里。
- PageObject 中的断言扰乱了代码的模块化和可重用性。
- 页面对象中的 writing/extending 通用函数有困难。
- 第三方每次都需要从测试脚本转到您的页面对象来检查您的断言。
优势 -
- 您始终可以添加 methods/functions 在您的 pageObject 中执行重复性任务,该对象执行一些操作(例如等待元素加载、获取元素的文本等...),而不是断言和 returns一个值。
- 从您的测试中调用 PageObject 的函数,并使用它们的返回值在您的测试中执行断言。
- 测试脚本中的断言易于阅读和理解,无需担心页面对象的实现。