J'ai plusieurs suites de tests de jasmin et certaines d'entre elles utilisent un service que j'ai implémenté. Quels sont les comportements des services dans Jasmine. J'ai remarqué que lorsque je fais des tests sur mon service, ce que je fais affecte d'autres tests unitaires. Comme nous le savons, cela ne peut pas arriver parce que unitTests doit être complètement indépendant. à savoirComportement des services Jasmine
it('Given my service with list populated when cleanList then getList return empty list', function(){
myService.populateList(_myData_);
expect(myService.getList().length).toBe(5);
myService.cleanList();
expect(myService.getList().length).toBe(0);
expect(myService.getList()).toEqual([]);
});
Si j'exécute que les tests avant un autre test dans d'autres décrivent dans un autre fichier complètement différent JS Script mon autre début de test échoue parce que je pense à utiliser cette liste, mais ce test population a nettoyé. Les services sont-ils ici un singleton comme dans mon application? Puis-je créer des instances indépendantes de ces services pour chaque suite de description?
Voici comment j'utilise ce type de services.
(function(){
'use strict';
var _data_ = require('../../../../json/dataMock.json');
fdescribe('MyApp wizard:', function(){
var controller, createController;
var modalInstance = { close: function(){}, dismiss: function(){} };
var myService;
beforeEach(function(){
angular.mock.module('myapp.ui.apps.wizard');
angular.mock.module('myapp.ui.apps.wizard.service');
});
beforeEach(inject(function($injector, $controller, $rootScope, _$sce_, _myService_){
myService = _myService_;
createController = function() {
return $controller('MaintenancesWizardController', {
$rootScope: $rootScope,
$uibModalInstance: modalInstance,
data: _data_,
$sce: _$sce_,
myService: _myService_
});
}
}));
it('this test fails if the one before is executed', function(){
controller = createController();
expect(myService.getList().length).toBe(5);
});
essayez-vous de tester le myservice? vous pouvez utiliser un espion pour votre service afin qu'il n'appelle pas réellement le service et change la valeur. –
@MukulJayaprakash Je viens de découvrir ce qui s'est passé! Lire ma réponse – acostela