在Restify中使用testing数据库

我创build了一个简单的Restify服务器,并使用自己的JSONclient通过Mocha开始testing它的function。

当unit testingfunction时,可以设置指示testing设置的ENV var,并连接到相应的mongodb数据库。

但是,当使用JSONClient时,显然,testing已经连接的“运行”API服务器。

是否有任何方法通过开关数据库连接,通过客户端的端到端testingAPIfunction,以不覆盖开发数据库?

编辑:我想我可以添加一个方法沿着“switchDataConnection”的行,将切换到testing数据库,但感觉肮脏和哈克。

一个为我工作的方法是一个env.js文件和一个config.js文件。

config.js (真正从config-dev.jsconfig-prod.js )我把我所有的configuration设置。 像目录path信息和数据库设置。

例如,这是我的开发数据库连接(我正在使用knexjs包):

 var knex = { client : 'mysql', connection : { host : '127.0.0.1', user : 'root', password : 'pass', database : 'testdev', charset : 'utf8' } }; 

在我的生产configuration中,我只是有一个不同的连接定义。

然后,在env.js ,我需要config.js文件来加载适当的设置。 在我的unit testing中,我可以加载dev的env.js ,在app.js我可以加载生产。

合理? 尽pipe如此,您可以对两个不同的DB进行相同的代码testing。

编辑评论:我会build议设置一个testing环境,你可以在不同的端口上启动你自己的API服务器 ,然后运行你的testing(当然这将连接到testing数据库)。