Salut salut, j'aurais une petite question pour la communauté, est ce que quelqu'un aurai deja fait des tests unitaires avec karma ou autre sur angular et ionic? je suis perdu total lol ^^ j'ai une erreur qui me dit que :
Error: [$injector:modulerr] Failed to instantiate module starter due to:
Error: [$injector:modulerr] Failed to instantiate module ionic due to:
Error: [$injector:nomod] Module 'ionic' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
mais seulement tous mes arguments sont passé dans mon test, je comprend pas trop comment je doit faire pour tester toute mon application... sur node c'est plus simpla il n'y as pas les scope a declarer avant ,a penser a créer un rootscope etc etc, franchement c'est reloud les test unitaire avec ionic ^^
Oui, j'ai chargé ionic, mais bon ca me soule un peut les test unitaire sur ionic la ^^ je vais me contenté des rapport de jshin pour le checkStyle ca seras plus simple et ca feras moin chi++ surtous!!
Salut,
j'ai deja fait des TU avec tout ca donc je veux bien voir avec toi si tu veux. Tu as un repo sur lequel on peut voir le code ?
non, c'est un repo privé dsl. Mais parcontre je veut bien un coup de main :-) je peut mettre le code ici si tu veut
Yep, c'est sur que ca va m'aider :). Peux tu poster ton karma.js et un de tes fichiers test stp ?
alors pour commencer ma conf karma :
module.exports = function(config) {
config.set({
basePath: './',
files: [
'www/lib/angular/angular.js',
'www/lib/angular-mocks/angular-mocks.js',
'www/js/app.js',
'www/js/**/*.js',
'test/**/*.js'
],
frameworks: ['jasmine'],
autoWatch: true,
browsers: ['PhantomJS']
});
};
et mon test:
describe('StatCtrl', function () {
var $scope, controller;
beforeEach(module('starter', [
'ionic',
'ionic.service.core',
'ngCordova',
'ionic.service.deploy',
'ionic.service.push',
'MessageCtrl',
'MessageFiniCtrl',
'MessageOneCtrl',
'TicketCtrl',
'TicketFiniCtrl',
'TicketOneCtrl',
'ticketProvider',
'MessageProvider',
'UpdateCtrl',
'StatCtrl',
'PushCtrl'
]));
beforeEach(inject(function ($rootScope, $controller) {
$scope = $rootScope.$new();
controller = $controller('StatCtrl',{
$scope:scope
});
}));
it('la fonction countAllTicket doit exister pour fonctionner', function () {
expect(countAllTicket).toBeDefined();
});
});
Alors, par rapport a mon code, il faudrait que tu mettes ca tout simplement :
beforeEach(module('starter');
Parce que tu veux charger le module starter
qui est le module principal de ton application, pas le reecrire comme c'est le cas ici.
De plus, dans ton karma.js, je pense qu'il te faut charger toutes tes dependences dans ton array files
aussi, notamment ionic. ([Edit] : c'est peut etre charge dans la 4eme ligne de ton files
justement).
Ben j'ai essayé avec juste starter, c'est la que l'erreur est ressortie, j'ai essayé cette methode mais elle marche pas non plus ^^
J'ai pas essayer de charger en dure toute l'app, faudras que j'essaie.
Quand je vois l'erreur et le fichier karma.js, j'ai l'impression que la librairie ionic n'est pas chargee. Est elle dans ton dossier js
ou ailleurs ?
Ha!! elle est dans le dossier lib, j'ai oublié de metre le lien vers lib dans mon karma.conf ca doit venir de ca