Skip to content

Commit

Permalink
Update 2014-09-10-protractor-n-est-pas-un-dinosaure.md
Browse files Browse the repository at this point in the history
  • Loading branch information
fdubost committed Sep 15, 2014
1 parent 6b26ead commit c704d09
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions _posts/2014-09-10-protractor-n-est-pas-un-dinosaure.md
Original file line number Diff line number Diff line change
Expand Up @@ -253,23 +253,26 @@ Dans les tests e2e, on veut tout tester, en particulier les comportements qui di

```js
it('comportement avec une autre valeur', function () {
browser.addMockModule('config', function () {
angular.module('config', []).constant('config', {
'ma_variable': 'une_autre_valeur'
});
browser.addMockModule('config', function () {
angular.module('config', []).constant('config', {
'ma_variable': 'une_autre_valeur'
});
});

// mon test
// mon test

browser.removeMockModule('config');
});
```

#### Mocker le service `$http`

Dans notre application, un fichier externe est requêté régulièrement via le service Angular `$http`. AngularJS fournit déjà un mock complet de ce service nommé `$httpBackend`. Pour y avoir accès, il faut ajouter la dépendance `angular-mocks` en `devDependencies` dans son fichier `bower.json` et inclure le fichier `bower_components/angular-mocks/angular-mocks.js` dans l’application en développement. `$httpBackend` permet de définir quels appels HTTP doivent être interceptés et quelles réponses doivent être renvoyées. La difficulté dans notre cas réside dans le fait de pouvoir simuler le changement d’état du fichier distant dans un même test pour pouvoir vérifier les changements de vue qui en découlent.
Dans notre application, un fichier externe est requêté régulièrement via le service Angular `$http`. AngularJS fournit déjà un mock complet de ce service nommé `$httpBackend`. Pour y avoir accès, il faut ajouter la dépendance `angular-mocks` en `devDependencies` dans son fichier `bower.json` et inclure le fichier `bower_components/angular-mocks/angular-mocks.js` dans l’application en développement. `$httpBackend` permet de définir quels appels HTTP doivent être interceptés et quelles réponses doivent être renvoyées.


Un exemple de code avec $httpBackend nu.
La difficulté dans notre cas réside dans le fait de pouvoir simuler le changement d’état du fichier distant dans un même test pour pouvoir vérifier les changements de vue qui en découlent. Il est possible de le faire directement via `$httpBackend` moyennant quelques acrobaties, mais la librairie [HttpBackend](https://github.com/nchaulet/httpbackend) simplifie grandement son utilisation pour ce type de tests.

Puis parler du module de Nico Chaulet qui simplie tout ça et un exemple avec.
Exemple

cf article Nico Chaulet : http://blog.nchaulet.fr/test-angularjs-app-mock-backend/

Expand Down

0 comments on commit c704d09

Please sign in to comment.