I have written a very simple class and some unit tests. The coverage report should be 100% but I see 75% for branches.
I can't figure out how to get to 100% and where I should be looking to understand what I'm missing.
UPDATE
Unit tests:
/* global describe jest it expect */
import GenericDice from '../generic-dice-vanilla';
jest.unmock('../generic-dice-vanilla');
describe('GenericDice', () => {
it('exists.', () => {
expect(GenericDice).toBeDefined();
});
it('has a default face property set to 1', () => {
const dice = new GenericDice();
expect(dice.face).toBe(1);
});
it('has a default rolling property set to true', () => {
const dice = new GenericDice();
expect(dice.rolling).toBe(true);
});
it('has a default animation property set to an empty string', () => {
const dice = new GenericDice();
expect(dice.animation).toBe('');
});
it('outputs something when the render function is called', () => {
const dice = new GenericDice();
const result = dice.render();
expect(result).toBeDefined();
});
});
I'm using Babel.js to transpile this code from ES6 into ES5.
To run the unit tests, I use the following command:
jest ./src/ -u
All the code can be found on Github: https://github.com/gyroscopico/generic-dice/tree/feature/35-vanilla
Therefore, to achieve 100% Statement coverage we have to make sure that every statement in the code is executed at least once. So we will need test case(s) executed in such a way that every statement of the code is executed at least once during the test execution.
You can use /* istanbul ignore else*/ just before the if statement to ignore the missing else . Save this answer. Show activity on this post. You can use /* istanbul ignore else */ to tell istanbul not to include that in the coverage.
It's related with the version of Jest that you are using and also the way the libraries using to collect the coverage, you will find a practice example if you follow this steps:
rm -rf node_modules/jest; npm install jest@test babel-jest@test multimatch istanbul-lib-instrument; npm test
Hope this will help you to update your configuration to get a full coverage.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With