我剛開始有一個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);
});
});
該規範將失敗,因爲該應用程序將使用配置文件中的祕密(空字符串),而不是我的測試祕密。