- Les codes relatives à Money src et test_sinon en JS
-[money_js_sinon.zip (src et test_sinon)](http://www.fil.univ-lille1.fr/~bilasco/OTI/money_js_sinon.zip)
- Corrigez les money.js et money_ops.js de telle sorte à ce que tous les tests écrits soit valides
- les tests se trouvent écrits en test_sinon/money_*.js
- l'exécution des tests se réalisent en chargeant les pages test_sinon/money_*.html
- Vous travaillerez sur les fichiers src/index.html, src/calc.js plus tard ...
### Créer des nouveaux méthodes de test
- Etendre le testcase money_test pour couvrir le plus possible les cas de figures possibles (par exemple création de money <0,currency> 3 caractères, etc..)
- Créer des nouvelles opérations et les testcases correspondants
- par exemple : soustraction (v1 - v2 avec une exception si v1 < v2 ou si pas la même unité monétaire)
- pour créer vos propres exceptions
```
function MonPropreEx(...) {}
function xxx () {
...
throw new MonPropreExc(...);
}
```
- pour indiquer qu'un test doit lever une exception, placer ce code dans la fonction de test
var fixtureNode=document.getElementById("qunit-fixture");
fixtureNode.innerHTML=fixture;
```
- Construisez un test qui vérifie que le message "Devises incompatibles ... " s'affiche, lorsque les devises ne sont pas compatibles.
- Modifiez les fichiers (index.html, calc.js) pour supporter également l'opération de soustraction implémentée précédemment
- Créez également des nouveaux tests (selon le modèle calc_test.js) pour couvrir cette nouvelle opération
- Modifiez le code de la fonction displayResult de telle sorte à ce que le texte soit affiché en rouge si une erreur est apparue dans le processus (devises incompatibles, soustraction impossible, etc.).
- Créez également des nouveaux tests (selon le modèle calc_test.js) pour couvrir cette nouvelle opération
### Assertion des alertes
- Modifiez le code javascript fourni de telle sorte à ce que cela généré une alerte (window.alert) lorsque l'opération n'est pas réalisable
- Ecrivez des tests pour valider que les alertes sont bien déclenchées.
### Renforcer les tests
- Que se passe-t-il lorsque vous demandez d'ajouter des moneys dont soit la valeur, soit la currency ne respectent pas les contraintes imposées ?
- Modifiez le code calc.js pour prendre en compte les éventuelles modifications.
- Ecrivez des tests pour couvrir les nouveaux cas de figure identifiés.
### Tests "croisés" (optionnel)
- Une fois que vous estimez avoir corrigé le code envoyez-le à la personne à votre gauche, en mettant en place un svn/hg/git de commun accord.
- Demandez-lui de tester votre code.
### Rendu
- Déposer sur PROF une archive du travail effectué en fin de journée (fermeture après la séance TPA)
- Un deuxième dépôt sera ouvert jusqu'à la fin des cours