自定义命令或实用程序 classes/functions?

Custom commands or utility classes/functions?

我正在与一个在 Nightwatch.js 中有项目的团队合作。他们正在为几乎所有东西定义命令:

对我来说,其中一些更适合实用程序 类,但他们更喜欢将它们作为命令使用,因此他们可以通过 browser.Command.

访问它们

正确的方法或建议是什么? All in 命令对我来说看起来很奇怪,但代码看起来更干净,因为您不需要导入。

谢谢,

这个问题可能会因为基于意见而被关闭,但无论如何。

我同意并非所有实用程序都应该是命令。我会 通常 看到命令的范围更多地与用户在浏览器中的操作有关,或者是一种对用户操作进行分组的方法,例如在典型的系统中,我会看到像 -

这样的命令
  • login(),它将点击分组到文本字段并输入用户名密码并最终点击登录按钮。
  • addUser(),这可能是一个小而重复的命令组,例如将用户添加到管理面板。
  • dragTo(x),它可能会处理一些拖放功能。

等等

我不会将 date utils 等视为命令,但正如您所说,只是实用函数,更多是关于测试的底层实现,而不是用户如何与系统交互。

虽然不是 Nightwatch,但也许可以从赛普拉斯的自定义命令最佳实践中获得一些建议 - https://docs.cypress.io/api/cypress-api/custom-commands#Best-Practices