node项目mocha自动化测试的疑问

发布于 2022-09-06 09:12:17 字数 551 浏览 22 评论 0

测试框架:mocha
数据库:mysql和mongodb

疑问1. 如何控制多个测试用例的运行顺序?用例写多了,A用例把数据变成了状态1,有些后面的用例基于这个状态1的数据进行查询判断,才能使得后面的用例正常运行,可是由于很多异步,用例A可能没运行完,后面的就跑起来了,数据都不对头,我希望能确保A用例跑完了再跑后面的,就是定义运行顺序


疑问2. 除了定义顺序以外,还能否定义依赖,在不调整顺序的情况下,用例声明依赖某个用例运行成功才运行,否则就skip,类似PHP的PHPUnit的@depends


疑问3. 许多用例对数据库进行了各种增删改查,在不编写删除/更新代码对数据进行恢复的情况下让数据恢复。我用PHP开发的时候解决方案是这样的:将一个定义好的mysql数据库导出sql文件,配置给PHP的测试框架,该测试框架每次启动时会清空数据库,然后导入这个sql文件,于是数据库就构建成了这个sql的内容,所有测试代码都是基于这个内容状态进行测试,怎么改都无所谓,反正下次启动的时候数据库又会被恢复,我希望node在这方面也有一个解决方案可以做到这样,否则的话也只好我自己开发这样的自动清空数据库和重新导入的模块了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

木有鱼丸 2022-09-13 09:12:17

1.
it('test some async function', done => {...})
你可以传入done函数,当异步结束完最后调用done,这样就可以定义运行顺序了。
async函数就不用传入done了,自己用await控制好就行

如果要定义不同文件之间的运行顺序,比如A要在B之前,只需在B的第一行加上require('./A')即可

2.
这个可以自己定义变量来控制顺序的吧。。或者可以看看mocha的官方文档

3.
before(() => {...})
在before函数里定义单测之前要执行的函数,一个比较好的实践方式就是,先删库,再跑单测。
如果要准备数据,可以专门写一个prepare.js,然后在单测文件的第一行require('./prepare')即可。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文