Tests - Geoffrey013/oc-p8-Take-existing-project-over GitHub Wiki
controllerSpec.js
Les tests -Au fur et à mesure de l'évolution de l'application, les tests permettent de s'assurer que les modifications n'impactent pas les autres fonctionnalités.
Dans cette application, un ensemble de tests à été mis en place avec l'outil "Jasmine". Il va permettre d'espionner les différentes fonctionnalités de l'application et de s'assurer qu'elles répondent bien au attentes. Chaque test va décrire une fonctionnalité ('new todo' par exemple), et identifier son comportement souhaité
Exemple de test
describe('routing', function () {
it('should show completed entries', function () {
var completedTodo = {title: 'my todo', completed: true};
setUpModel([completedTodo]);
subject.setView('#/completed');
expect(model.read).toHaveBeenCalledWith({completed: true}, jasmine.any(Function));
expect(view.render).toHaveBeenCalledWith('showEntries', [completedTodo]);
});
});
Dans cet exemple, la fonctionnalité "routing" est testée et notamment celle qui "devrait afficher les entrées 'complètes'". Un todo complété existant et un passage sur le filtre 'complété' sont simulés. Afin que le test soit une réussite, les méthodes read
du Modele et render
de la Vue sont espionnées afin de savoir s'il elle ont été appelées et avec le bon paramètre. (expect
, toHaveBeenCalledWith
)