Tests - Geoffrey013/oc-p8-Take-existing-project-over GitHub Wiki

Les tests - controllerSpec.js

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)