【发布时间】:2019-01-07 12:41:06
【问题描述】:
所以,我看到了很多关于这个主题的问题(1),但不知何故,我不想实施那里提供的答案。例如在beforeAll() 中进行重置或运行grunt 任务等。
比如说,我有一个包含 25 个测试的规范文件,其中任何一个测试都可以修改数据库状态,使得下一个测试可能会失败。我的API 中有一个具有更高权限级别的测试端点,我正在使用它们来重置我在个人测试中所做的更改。问题是如果任何测试抛出任何异常,重置数据库状态的代码将不会运行。
所以我决定有一个变量:比如databaseChanges,它将存储有关通过测试完成的任何数据库更改的信息。因此,每当我要通过测试进行任何数据库更改时,我都会在更改之前更新 databaseChanges 变量。我使用此变量在afterEach() 中恢复我的数据状态,并在beforeEach() 中重置此databaseChanges。
问题:
我面临的问题是我想验证这些更改是否成功。当我在afterEach() 中使用expect() 语句时,它会抛出一个错误,并显示类似èxpect() not allowed outside it(), or a timeout occurred.... 的消息,所以我相信我的afterEach() 中不能有expect(),或者我可以吗?或者有什么方法可以在afterEach() 中运行it(),当然这看起来像是一个无限循环。
- 我想获得关于我正在做的事情是否正确的建议
重置数据库,或者我应该在我的
beforeAll()等和 - 有什么方法可以验证
在我的
àfterEach()中成功更新了数据库。
【问题讨论】:
标签: angular protractor e2e-testing