Create unit tests local authored by Taras Gaidukov's avatar Taras Gaidukov
# Configure unit tests on local machine
https://jasmine.github.io/ \
https://karma-runner.github.io/latest/index.html
## Write unit tests
For writing unit tests we will use the Jasmine framework.
1. Initialize NodeJS project with `npm init` and install jasmine:
```
npm init
npm install --save-dev jasmine
```
2. Unit tests are located in `*.spec.js` files. Create spec file with unit tests for `sum.js`, in this tutorial we will test the `sum` function only:
js/sum.spec.js
```
describe('Sample project', () => {
it('sum should return 3', () => {
const result = sum(1, 2);
expect(result).toBe(3);
});
it('sum should return 0', () => {
const result = sum(1, -1);
expect(result).toBe(0);
});
});
```
3. Install test runner named Karma with Chrome launcher and Jasmin plugin:
```
npm install --save-dev karma karma-jasmine karma-chrome-launcher
```
4. Create karma configuration file:
karma.conf.js
```
module.exports = config => {
config.set({
basePath: './js',
frameworks: ['jasmine'],
files: [
'**/*.js'
],
exclude: [
'main.js'
],
preprocessors: {},
reporters: ['progress'],
port: 9876,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false,
concurrency: Infinity
});
};
```
5. Add test command into `package.json` file:
```
"scripts": {
"test": "karma start karma.conf.js"
}
```
6. Run tests:
```
npm run test
```
\ No newline at end of file