代码之家  ›  专栏  ›  技术社区  ›  user3735114

web+移动应用程序的Cucumber文件夹结构

  •  1
  • user3735114  · 技术社区  · 10 年前

    我有几个关于黄瓜文件夹结构的问题:

    1. 我想我将根据type_of_user/type_of_feature.feature(即main_admin/add_a_customer.feature或特许经营人/schedule_job.feature)来组织我的功能文件夹。唯一的小问题是我的用户类型:清洁工、客户、特许经营人和主管理员/特许经营人,后两个用户共享许多功能。例如,被特许人和特许人都有能力添加新客户并安排工作,唯一的区别是特许人有能力为任何人、任何地方安排工作,即唯一真正的区别是权限,而不是功能。考虑到建议的文件夹结构,我将基本上为这两个用户重复测试,这是否重要?或者我应该只按功能,然后按用户类型来区分文件夹吗?

    2. 对于我的移动应用程序,我应该将这些功能文件夹与web应用程序分开,还是也应该将它们放在根目录中:mobile/ios/cleaner_login.feature、mobile/android/cleaner.login.feature等?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Dave Schweisguth    10 年前

    关于用户类型:

    在顶层按用户类型进行组织对我来说效果很好。然而,如果用户类型实际使用了不同的功能,而不仅仅是在特定对象的权限不同时(如您所举的示例),我才会将用户类型视为单独的。您可以将特许经营人和特许经营人都视为“管理员”,为他们创建一个顶级文件夹,只需为特许经营人和特许经营人编写对这些角色具有不同权限的功能的场景。

    如果你是一名开发人员,除了编写Cucumber特性之外还编写RSpec规范,你甚至可以只编写规范而不是特性,以涵盖特许经营者和特许经营者之间的差异。(我只会在加盟商和特许人之间的差异很小且不值得在Cucumber中公开的情况下才这样做。)如果你只是从外部进行QA和测试,当然,这一切都必须在Cucument中进行。

    我当然不会为了任何组织而系统地复制整个场景。当您忘记时,维护复制和错误所需的额外工作将比遵循稍微复杂一些的系统以最小化复制所需的一点额外工作要糟糕得多!

    关于网络和移动:如何处理不同的平台取决于它们的不同程度。

    如果你有一个网络应用程序和一个本地(Android、iOS)移动应用程序,那么步骤实现将完全不同,你的测试需要在不同的项目中进行。这可能并不意味着有那么多的重复,因为网络和移动应用程序中的用户和功能可能会截然不同。

    如果您有两个web应用程序,一个用于桌面应用程序,另一个用于移动应用程序,则不存在技术问题。但这同样取决于这两个应用程序的相似程度。如果它们不同,请在顶层将它们分开(甚至在用户之前)。如果它们非常相似,则仅在必要时和仅在场景级别将它们分开。