Ich möchte meine angular service
testen Ich möchte es mit echten Daten testen - a.k.a (Integrationstest). Ich benutze Jasmin und Karma.Integrationstest AngularJS + Karma + Jasmin
Hier ist mein Test:
describe('Trending Data Service', function() {
var value = 0, originalTimeout = 0;
var service, Enums, $httpBackend;
// initialize module
beforeEach(module('waterfall'));
// initialize services
beforeEach(inject(function ($injector) {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
$httpBackend = $injector.get('$httpBackend');
service = $injector.get("trendingService");
Enums = $injector.get("Enums");
spyOn(service, 'fetch').and.callThrough();
}));
it('check if dependencies are defined', function() {
expect(service).toBeDefined();
expect(Enums).toBeDefined();
expect(service.categories).toBeDefined();
expect(service.fetch).toBeDefined();
});
it('categories array should be defined within the service', function() {
expect(service.categories.length).toEqual(9);
expect(service.categories).toEqual(jasmine.any(Array));
});
// this test is alway fails...
it('fetch method should return initial result', function (done) {
var promise = service.fetch(Enums.socials.viewAll, false);
promise.then(function (result) {
done();
}, function() {
expect(1).toBe(2);
done.fail('Error occured');
});
});
}
Dies ist der Fehler: Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
habe ich versucht, eine breite Palette von Lösungen, und ich habe keinen Erfolg mit diesem bekam.
EDIT: 29/April/2016
var trendingService = function ($q, $http) {
var deferred = $q.defer();
var $this = this;
this.fetch = function (id) {
$http.get(url).then(function (result) {
deferred.resolve(result);
}).catch(function(err) {
deferred.reject(err);
});
return deferred.promise;
}
return {
fetch: $this.fetch;
};
};
var Enums = {
Roles: {
Admin: 1,
User: 2,
NotRegistered: 0
}
};
angular.module('').const('Enums', Enums);
Ich stimme zu, Sie könnten auch auf http://www.seleniumhq.org/ für browserbasierte Regression Automatisierung Suiten und Tests –
Wie hilft es, wenn ich meinen konkreten Service zu überprüfen, ohne e2e gehen? Ich will nicht wissen, ob die konkreten Daten gebunden sind. Ich möchte wissen, dass Daten da sind und an spezifische Logik im konkreten Dienst gebunden sind. Wie ich es bei C# -Tests mache. – IamStalker