現在、取り組んでいる小さな NodeJS API の単体テスト環境をセットアップしようとしています。この API は ES6 で記述されており、express を使用してリクエストを処理しています。
これまでに使用したテスト構造は次のとおりです。
- カルマ
- ジャスミン
- Karma-webpack
- バベルローダー
私の仕様のほとんどで問題なく動作します。
問題は、Router の仕様を (Express から) 書き込もうとすると、次のエラーが発生することです。
SyntaxError: Cannot declare a parameter named 'error' in strict mode
それらは私が使用しているファイルです:
カルマ.conf.js
module.exports = function(config) {
config.set({
browsers: ['PhantomJS'],
files: [{
pattern: './src/**/*.spec.js',
watched: false
},
'node_modules/babel-polyfill/dist/polyfill.js'
],
reporters: ['dots', 'growl'],
frameworks: ['jasmine'],
preprocessors: {
'./src/**/*.js': ['webpack']
},
webpack: {
target: 'node',
module: {
loaders: [{
test: /\.js/,
exclude: /node_modules/,
loader: "babel-loader"
}, {
test: /\.json$/,
loader: "json-loader"
}]
},
resolve: {
extensions: ['', '.js', '.json']
},
watch: true
},
webpackServer: {
noInfo: true,
stats: 'errors-only'
}
});
};
authRouter.js
import {Router} from 'express';
export class AuthRouter {
constructor() {
this.router = Router();
this.init();
}
init() {
this.router.post('/login', this.login);
this.router.get('/logout', this.logout);
}
login(req, res){
//Do stuff
}
logout(req, res){
// Do stuff
}
}
const authRoutes = new AuthRouter();
authRoutes.init();
export default authRoutes.router;
authRouter.spec.js
import {AuthRouter} from './AuthRouter';
describe('AuthRouter', () => {
let router;
beforeEach(() => {
router = new AuthRouter();
});
it('work this test :(', () => {
expect(true).toBe(true)
});
});
誰かが私を助けることができますか?
前もって感謝します