我刚开始有一个Koa应用程序,我需要测试从配置文件中获取数据的东西。如何模拟我的配置文件进行测试?
我需要用具体的数据来进行测试,但我不知道如何修改测试从配置文件接收的数据。
例子:
app.js
var router = require('koa-router');
var config = require('./config.js');
var db = require('./db.js');
var auth = require('./auth');
var app = require('koa')();
router.get('/', function *() {
if(auth(this.req, config.credentials.secret)) { // Authenticates request based on a hash created using a shared secret
this.body = "Request has been authenticated";
}
});
app.use(router.routes());
app = module.exports = http.createServer(app.callback());
app.listen(3000);
appSpec.js
var request = require('supertest');
var app = require('../app.js');
describe('app', function() {
it('should authenticate all requests against config shared secret', function() {
var secret = 'some_secret';
var validHash = /* hash created from test secret and query */;
request(app)
.get('/')
.query({query: 'some_query'})
.query({hash: validHash})
.expect(403, done);
});
});
该规范将失败,因为该应用程序将使用配置文件中的秘密(空字符串),而不是我的测试秘密。