如何组织多部分Codecept.js场景?

时间:2017-12-14 04:49:48

标签: automated-tests bdd codeception codeceptjs

多部分Codecept.js场景的首选(或仅仅是好)模式是什么,例如:

  1. 选择要上传的文件。
  2. 明确选择。
  3. 清除选择后选择要上传的文件。
  4. 我可以在一个场景中执行此操作并使用I.say来描述部分,但感觉我应该能够将这些作为独立场景编写并在第2部分中使用.only,例如,并且第1部分在第2部分之前运行,因为它取决于它。

    如果在运行整个套件时第1部分失败,我还想跳过第2部分和第3部分。

2 个答案:

答案 0 :(得分:2)

我喜欢考虑功能方面的行为。我可以看到你在这里有一对:

  • 上传文件
  • 在上传文件时纠正错误。

所以我希望这些可以分为两种情况:

  • 实际上传文件的地方
  • 你纠正错误的地方。

很多人说应该只有一个"当"在情景中,但这并没有考虑与人的互动(包括你过去的错误自我)或时间。在这种情况下,它是纠正提供值的文件上载的整个过程。我在中间步骤中看不到任何价值,所以我将它们全部留在一个场景中。

如果存在与不同上下文关联的任何不同行为(例如:您已经上传了太多文件)或结果(例如:您的文件系统没有空间)或规则(例如:您的文件系统没有空间)或规则(例如:你的状态意味着你有资格获得超快速上传)然后我希望那些是新的场景。如果您开始涉及与文件上传相关的许多方案以及发生在他们身上的不同事情,那么可能是将此方案分离出来的好时机。现在我看不出有任何理由这样做。

重申第一部分失败:如果你正确地做BDD,你不仅要谈论你的系统行为,还要讨论各个代码行为的行为。这应该有助于产生一个良好的设计,最大限度地减少出现错误的机会。非常好的BDD团队制作的场景几乎不会发现错误!

场景充当活文档,而不是回归测试;帮助未来的开发人员理解代码的价值并使其正确,而不是将其固定下来以阻止他们弄错。

所以我不担心它会失败。如果它做了很多,你就会遇到不同的问题。对它进行编码,好像它大部分时间都要通过,并确保它的可读性和可理解性。只要你能看到它失败并解决它,即使这需要一点时间,它也会没问题。

话虽如此,如果Codecept至少没有选择停止失败,我会感到惊讶。大多数BDD工具在失败的步骤后不会继续执行一个场景;这样做会很奇怪。

答案 1 :(得分:0)

据我所知,您无法在codeceptjs中设置执行优先级。最好做一个测试。如果您需要添加或删除某些部分,它也会更灵活。