Jasmine (framework de test JavaScript) - Jasmine (JavaScript testing framework)

Jasmin
Logo jasmin.svg
Développeur(s) Laboratoires pivots
Première version 14 septembre 2010 ; il y a 11 ans ( 2010-09-14 )
Version stable
3.7.1 / 19 mars 2021 ; il y a 6 mois ( 2021-03-19 )
Dépôt
Écrit en JavaScript
Système opérateur Multiplateforme
Taper Test de l'unité
Licence Licence MIT
Site Internet jasmin .github .io Modifiez ceci sur Wikidata

Jasmine est un framework de test open source pour JavaScript . Il vise à s'exécuter sur n'importe quelle plate-forme compatible JavaScript, à ne pas empiéter sur l'application ni l' IDE et à avoir une syntaxe facile à lire. Il est fortement influencé par d'autres frameworks de tests unitaires, tels que ScrewUnit, JSSpec, JSpec et RSpec .

Histoire

Les développeurs de Pivotal Labs pour Jasmine ont précédemment développé un cadre de test unitaire similaire appelé JsUnit avant le développement actif de Jasmine.

Caractéristiques

  • Prend en charge les tests asynchrones.
  • Utilise des "espions" pour implémenter des doubles de test .
  • Prend en charge les tests de code frontal via une extension frontale de Jasmine appelée Jasmine-jQuery.

Usage

Jasmine vise à être facile à lire. Un simple test hello world ressemble au code ci-dessous, où describe() décrit une suite de tests et it() est une spécification de test individuel. Le nom "it()" suit l'idée du développement axé sur le comportement et sert de premier mot dans le nom du test, qui doit être une phrase complète. L'utilisation suit une syntaxe similaire à celle de RSpec .

Le code ci-dessous teste cette fonction

function helloWorld() {
  return 'Hello world!';
}

et vérifie que sa sortie est bien le texte "Hello world!".

describe('Hello world', function() {
  it('says hello', function() {
    expect(helloWorld()).toEqual('Hello world!');
  });
});

Jasmine fournit un riche ensemble de matchers intégrés. Dans l'exemple ci-dessus, toEqual vérifie l'égalité entre la valeur renvoyée par la fonction helloWorld() et le 'Hello world!' chaîne de caractères. C'est la même chose que les assertions utilisées dans d'autres frameworks de test. Les matchers Jasmine renvoient simplement une valeur booléenne : true si l'attente est satisfaite (un moyen d'indiquer que le test a réussi) ou faux si l'attente ne correspond pas. Une bonne pratique consiste à mettre une seule attente dans une spécification de test it() individuelle.

Les autres matchers intégrés incluent toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo. Le matcher d'identité toBe vérifie si deux choses sont le même objet. Les matchers de condition toBeTruthy, toBeFalsy évaluent si quelque chose est vrai ou faux et toBeDefined, toBeUndefined vérifient si quelque chose est défini ou non défini. Comme son nom l'indique, toBeNull vérifie si quelque chose est nul et toBeNaN vérifie si quelque chose n'est pas un nombre ( NaN ). Le matcher de précision toBeCloseTo accepte deux paramètres et vérifie si un nombre est proche du premier paramètre, étant donné une certaine précision décimale comme indiqué par le deuxième paramètre. Matcher toContain est utilisé pour vérifier qu'un élément, un objet ou une sous-chaîne est contenu dans un tableau, une liste ou une chaîne.

Le matcher spécial intégré toThrow est utilisé pour vérifier qu'une exception a été levée. Le code ci-dessous vérifie que "Une exception" est levée.

describe('Expect to throw an exception', function() {
  it('throws some exception', function() {
    expect( function(){ throw('Some exception'); }).toThrow('Some exception');
  });
});

Jasmine possède un certain nombre d'autres fonctionnalités, telles que des matchers personnalisés, des espions et la prise en charge des spécifications asynchrones.

Coureurs de test de jasmin

Jasmine est livré avec un lanceur de test intégré. Les tests Jasmine peuvent exécuter des tests de navigateur en incluant un simple fichier SpecRunner.html ou en l'utilisant comme lanceur de test en ligne de commande pris en charge pour divers langages tels que Nodejs, Python, Ruby ou (à l'ancienne) en utilisant Karma, un simple outil de lancement de test JavaScript. .

Comparaison entre le jasmin et le moka

Mocha est un autre framework de test Javascript populaire. La comparaison entre le jasmin et le moka est donnée dans le tableau ci-dessous.

Jasmin Moka
Jasmine est livré avec des tests en double en utilisant des espions. Mocha n'est pas fourni avec une double bibliothèque de test et utilise généralement une bibliothèque externe comme Sinon.
Jasmine a un utilitaire de ligne de commande pour exécuter des tests. Mocha a un utilitaire de ligne de commande pour exécuter des tests.
Jasmine a des affirmations intégrées. Mocha n'a pas de bibliothèque d'assertions et utilise Chai pour les assertions.

Avantages

  • L'objectif de Jasmine est d'être indépendant du navigateur, du framework, de la plate-forme et du langage.
  • Outre le développement axé sur le comportement, Jasmine prend également en charge le développement axé sur les tests .

Voir également

Les références

Liens externes