2019-2020/Formations/NSI/Bloc1/WEB/DIU-EIL-WEB-test.js

63 lines
2.0 KiB
JavaScript

/* global mocha suite test chai fibonacci */
// voir la documentation https://mochajs.org/#running-mocha-in-the-browser
'use strict';
document.addEventListener('DOMContentLoaded', () => {
// initialisation de Mocha
mocha.setup('tdd');
mocha.globals(['__VUE_DEVTOOLS_TOAST__']);
mocha.checkLeaks();
// ////////////////////////////////////////////////////////////////////
// Suites de tests
// ////////////////////////////////////////////////////////////////////
// Voir pour la syntaxe des assertions https://www.chaijs.com/api/assert/
suite('Tests pour la fonction fibonacci', () => {
test('Type de résultats : nombre', () => {
chai.assert.isNumber(fibonacci(0));
});
test('Paramètre négatif : résultat indéfini', () => {
chai.assert.isUndefined(fibonacci(-1));
});
test('Paramètre mauvais type : résultat indéfini', () => {
chai.assert.isUndefined(fibonacci({}));
chai.assert.isUndefined(fibonacci(() => 0));
chai.assert.isUndefined(fibonacci([]));
chai.assert.isUndefined(fibonacci('test'));
chai.assert.isUndefined(fibonacci());
chai.assert.isUndefined(fibonacci(true));
});
test('Test valeurs initiales', () => {
chai.assert.strictEqual(fibonacci(0), 0);
chai.assert.strictEqual(fibonacci(1), 1);
chai.assert.strictEqual(fibonacci(2), 1);
});
test('Test valeur haute ', () => {
chai.assert.strictEqual(fibonacci(30), 832040);
});
});
suite('Tests pour la fonction fibonacci', () => {
test('Start est à 0 par defaut', () => {
chai.assert.strictEqual(range(0,10), range(10));
});
test('Comportement attendu', () => {
chai.assert.strictEqual(range(10), [0,1,2,3,4,5,6,8,9]);
chai.assert.Equal(range(10, 4, 2) == [4,6,8]);
});
test('Liste vide quand end > start', () => {
chai.assert.Equal(range(-2, 0), []);
});
})
// Lancement des tests
mocha.run();
}, false);