【发布时间】:2012-11-13 08:51:40
【问题描述】:
有没有办法跨多个功能重用黄瓜场景,每个功能共享相同的 UI 特征?
例如,如果我正在创建一个 iPhone 应用程序,那么无论实际显示什么,我都会为每个表格视图屏幕运行某些测试。这些将是添加新行、删除行、重新排序等。
将这些复制并粘贴到每个功能中会破坏 DRY。有没有办法在 cucumber 中指定通用或模板化测试,我可以将其包含到需要它们的每个功能中?
【问题讨论】:
有没有办法跨多个功能重用黄瓜场景,每个功能共享相同的 UI 特征?
例如,如果我正在创建一个 iPhone 应用程序,那么无论实际显示什么,我都会为每个表格视图屏幕运行某些测试。这些将是添加新行、删除行、重新排序等。
将这些复制并粘贴到每个功能中会破坏 DRY。有没有办法在 cucumber 中指定通用或模板化测试,我可以将其包含到需要它们的每个功能中?
【问题讨论】:
不要将 BDD 视为测试。将其视为提供一组示例,说明您的应用为何有价值以及如何使用它。
如果应用对每个表使用相同的代码,那么您只需要一个示例。我希望它的措辞类似于:
Given Quentin has three films listed
When he adds "Kill Bill" to the film list
Then he should be reminded that he already owns it.
Given Quentin has mistakenly added "Twilight" to his favourite films
When he deletes it from the film list
Then it should no longer be in the table.
您制作的场景越有趣、越人性化,您就越能弄清楚为什么您的应用程序很有价值。这是 BDD 的真正核心 - 不是测试,而是首先要知道为什么要编写代码。
与真正想要该应用的人交谈将帮助您了解它应该做什么 - 如果您自己编写它,请买一只橡皮鸭!
【讨论】: