我怎样才能编写一个需要操作mySQL数据库的testing模块?
我正在写一个nodejs npm模块,需要一个mySQL数据库来操作。
我想写一个连接到“假”数据库的testing模块,并对其进行一些操作。
我已经在我的开发机器中本地安装了我的testing数据库,但是我希望这个testing可以在任何机器上运行。
编写依赖于操作mySQL数据库的集成testing模块的最佳做法是什么?
是否存在networking中的任何公共服务,我可以得到一个临时的MySQL用户/密码,我可以在有限的时间/大小做一些操作?
通常你会build立一个持续集成(CI)系统,每当你改变你的版本控制系统就执行你的testing。 CI系统将提供一个干净的MySQL数据库,您的testing将运行。 如果您在云中使用CI系统,则通常可以将其configuration为提供数据库。 例如见Travis CI 。
如果你build立了一个CI系统,其他开发者如果想要执行testing,仍然需要在他们的计算机上运行他们自己的MySQL数据库。 或者,您可以在testing中使用模拟代替真实数据库。 有关详细信息,请参阅: 如何在Node.js中模拟MySQL(没有ORM)
然而,使用模拟不会给你足够的testing结果,因为模拟只是简单地模拟数据库。 有时候模拟可能太简单,或者只是越野车。 所以你至less需要对真实数据库运行一些testing。 因此,您可以select使用CI系统对真实数据库运行testing,并在开发过程中针对模拟运行testing。
不完全理解这个问题,我build议Amazon RDS进行短期testing,需要通过公共互联网访问某些内容。 如果用于任何实际stream量,amazon web services可以得到高昂的价格,但对于任何概念certificate来说,这仍然是一个很好的select
- Node.JS +茉莉花+量angular器
- 如何从一个文件夹运行npmtesting?
- 摩卡柴Sinontesting无法访问的承诺/asynchronous/事件发射器
- 模拟模块,它在node.js中返回一个函数
- browser-perf和量angular器perf和perfjankie之间的区别
- 如何使用Selenium Webdriver Nodejs为一个configuration文件运行两个Chrome驱动程序?
- 我的注册testing与摩卡无效的csrf令牌
- 如何testing在testing函数中没有返回的被调用的promise
- 在基于jsdom的testing中调用setState导致“无法在工作线程中呈现标记”错误