自定义命令或实用程序 classes/functions?
Custom commands or utility classes/functions?
我正在与一个在 Nightwatch.js 中有项目的团队合作。他们正在为几乎所有东西定义命令:
- 日期时间函数作为命令(return 当前日期、一段时间内的天数数组等)
- SQL 查询以获取数据作为命令
对我来说,其中一些更适合实用程序 类,但他们更喜欢将它们作为命令使用,因此他们可以通过 browser.Command
.
访问它们
正确的方法或建议是什么? All in 命令对我来说看起来很奇怪,但代码看起来更干净,因为您不需要导入。
谢谢,
这个问题可能会因为基于意见而被关闭,但无论如何。
我同意并非所有实用程序都应该是命令。我会 通常 看到命令的范围更多地与用户在浏览器中的操作有关,或者是一种对用户操作进行分组的方法,例如在典型的系统中,我会看到像 -
这样的命令
- login(),它将点击分组到文本字段并输入用户名密码并最终点击登录按钮。
- addUser(),这可能是一个小而重复的命令组,例如将用户添加到管理面板。
- dragTo(x),它可能会处理一些拖放功能。
等等
我不会将 date utils 等视为命令,但正如您所说,只是实用函数,更多是关于测试的底层实现,而不是用户如何与系统交互。
虽然不是 Nightwatch,但也许可以从赛普拉斯的自定义命令最佳实践中获得一些建议 - https://docs.cypress.io/api/cypress-api/custom-commands#Best-Practices
我正在与一个在 Nightwatch.js 中有项目的团队合作。他们正在为几乎所有东西定义命令:
- 日期时间函数作为命令(return 当前日期、一段时间内的天数数组等)
- SQL 查询以获取数据作为命令
对我来说,其中一些更适合实用程序 类,但他们更喜欢将它们作为命令使用,因此他们可以通过 browser.Command
.
正确的方法或建议是什么? All in 命令对我来说看起来很奇怪,但代码看起来更干净,因为您不需要导入。
谢谢,
这个问题可能会因为基于意见而被关闭,但无论如何。
我同意并非所有实用程序都应该是命令。我会 通常 看到命令的范围更多地与用户在浏览器中的操作有关,或者是一种对用户操作进行分组的方法,例如在典型的系统中,我会看到像 -
这样的命令- login(),它将点击分组到文本字段并输入用户名密码并最终点击登录按钮。
- addUser(),这可能是一个小而重复的命令组,例如将用户添加到管理面板。
- dragTo(x),它可能会处理一些拖放功能。
等等
我不会将 date utils 等视为命令,但正如您所说,只是实用函数,更多是关于测试的底层实现,而不是用户如何与系统交互。
虽然不是 Nightwatch,但也许可以从赛普拉斯的自定义命令最佳实践中获得一些建议 - https://docs.cypress.io/api/cypress-api/custom-commands#Best-Practices