查看文档,两者似乎非常相似(BeforeAndAfterEach BeforeAndAfter)。他们之间的核心区别是什么。在什么情况下应该使用其中一个而不是另一个(并且可能另一个甚至无法工作。)
从scalatest文档中您可以找到所需的所有信息。
TL;DR:两者具有相同的功能。BeforeAndAfter更简洁,同时BeforeAndAfterEach更可堆叠。
BeforeAndAfter当您需要在测试之前和/或之后(而不是在测试开始或结束时)执行相同的副作用时,请使用特征。注意:要更深入地了解 Before 和 After 在整体情况中的位置,请参阅您所选风格特征文档中的共享灯具部分。
我应该使用BeforeAndAfter还是BeforeAndAfterEach?(从BeforeAndAfter角度来看)
尽管
BeforeAndAfter提供了一种在测试之前和之后执行代码的最小样板方法,但它并不是为了启用可堆叠特征而设计的,因为执行顺序并不明显。如果您想提取多个测试套件共有的前后代码,则应该使用 TraitBeforeAndAfterEach。与 BeforeAndAfterEach 相比,该特性的优点是其语法更加简洁。主要缺点是它不可堆叠,而
BeforeAndAfterEach可以。也就是说,您可以编写几个扩展BeforeAndAfterEach和提供 beforeEach 方法的特征,其中包括对 super.beforeEach 的调用,并将它们以各种组合混合在一起。相比之下,混合在 BeforeAndAfter 中的套件或规范中只允许调用一次 before 注册函数。此外,BeforeAndAfterEach允许您通过传递给 beforeEach 和 afterEach 方法的 TestData 来访问配置映射和测试名称,但BeforeAndAfter不允许您访问配置映射。
BeforeAndAfterEach当您想要在测试之前和/或之后(而不是在测试开始或结束时)堆叠执行副作用的特征时,请使用特征。注意:要更深入地了解BeforeAndAfterEach总体情况,请参阅您所选风格特征文档中的共享灯具部分。
我应该使用BeforeAndAfter还是BeforeAndAfterEach?(从BeforeAndAfterEach角度来看):
BeforeAndAfterEachover的主要优点BeforeAndAfter是BeforeAndAfterEach. 启用特征堆叠。与 BeforeAndAfter 相比,主要缺点BeforeAndAfterEach是BeforeAndAfterEach需要更多样板文件。如果您不需要特征堆叠,请使用BeforeAndAfter代替BeforeAndAfterEach。如果您想在 beforeEach 或 afterEach 方法中使用测试数据(测试名称、配置映射等),请改用 TraitBeforeAndAfterEachTestData。
PS 我发现有一个常见的错误,即一个测试会执行而另一个不会执行。还有另一个特征叫做BeforeAndAfterAll。
| 归档时间: |
|
| 查看次数: |
1192 次 |
| 最近记录: |