Node.js 使用测试数据库测试Strongloop RESTapi
我正在使用Strongloop开发一个web应用程序,该应用程序将在Bluemix(云平台服务)上运行 我的问题是,当我进行测试时,我希望测试针对另一个数据库运行,而不是内存数据库 关于如何做到这一点,我有两个问题:Node.js 使用测试数据库测试Strongloop RESTapi,node.js,mocha.js,ibm-cloud,loopbackjs,strongloop,Node.js,Mocha.js,Ibm Cloud,Loopbackjs,Strongloop,我正在使用Strongloop开发一个web应用程序,该应用程序将在Bluemix(云平台服务)上运行 我的问题是,当我进行测试时,我希望测试针对另一个数据库运行,而不是内存数据库 关于如何做到这一点,我有两个问题: 我是否/如何配置在运行测试时应该使用的特定数据库?我希望在作为部署的一部分部署到Bluemix上时能够运行测试。所以,若我并没有错的话,若我可以手动设置一些参数,那个么当我在做一个“节点”时,数据库将运行什么,这是不够的 同样在my server.js中,我这样做是为了根据我的数据
var appModels = ['User'];
var ds = app.dataSources.eventSeedElephantSQLDb;
ds.isActual(appModels, function(err, actual) {
if (!actual) {
ds.autoupdate(appModels, function(err) {
if (err) throw (err);
});
}
});
在测试中,我使用mocha、chai和chaiHttp。您可以为测试创建“特定于环境的配置”。 看: 例如,您创建了另一个datasources.json配置文件,但名称为datasources.test.json
{
"my-test-database": {
"host": "localhost",
"port": 27017,
"database": "my-test-database",
"connector": "mongodb"
}
}
在测试的第一行,你定义了环境
process.env.NODE_ENV = 'test';
//here I clean and create the data that I need, but you can use your database data
beforeEach(function(done) {
app.models['City'].destroyAll();
app.models['City'].create({name: 'city test', country: 'Brazil'});
});
describe('/city', function() {
it('should find a city', function(done) {
request(app).get('/api/city').expect(200);
});
});