新人在学习egg.js 中,一些关单元测试的疑惑,请前辈们指导一下。
发布于 2 天前 作者 hopperhuang 248 次浏览 来自 问答

我的疑惑是,涉及单元测试在涉及数据库的部分应该怎么处理? 最近在学习node.js 和 egg框架。看到了关于单元测试的部分。就是对单元测试的时候,涉及网络io 和数据库的部分逻辑我们应该怎么处理呢?

我看到的文章的大概方案有两种。 第一种是: 通过单元测试框架的相关钩子,在启动测试前,连接到相应的测试数据库(测试数据库预先写入好需要的数据)中,然后再进行相应的测试。

第二种方法是: 关于数据库和网络io的,都使用mock方法。将数据库和网络io的相应测试分离。

我是认同第二种方法的。因为涉及到外部的东西,就应该放到集成测试中去,这并不是单元测试的目标。所以,应该用mock方法去模拟相应的操作。 但是,我又没找到可以mock数据库操作的库。google过了,好像也没找到相应的方法。

不知道前辈们在单元测试时,是如果测试这部分(涉及数据库和网络io)的逻辑的。请给后辈一些指点,谢谢各位了!!

2 回复

从来没写过单元测试,我们团队也是,都是直接在开发环境跑一下,没啥问题直接发测试环境,让测试测,有bug再改。至今没有理解单元测试的意义。

2个方案并没有冲突,涉及到DB你可以使用方案1,在setup中建立测试库,填充必要数据,在teardown中拆除测试库。每次运行用例都应该保证测试库是全新的。 涉及三方服务的,你可以以mock为主

回到顶部