222 votes

Tests unitaires angulaires 2: le nom "décrire" est introuvable

Je suis en suivant ce tutoriel angulaires.io

Comme ils l'ont dit, j'ai créé des héros.spec.ts fichier à créer des tests unitaires:

import { Hero } from './hero';
describe('Hero', () => {
  it('has name', () => {
    let hero: Hero = {id: 1, name: 'Super Cat'};
    expect(hero.name).toEqual('Super Cat');
  });
  it('has id', () => {
    let hero: Hero = {id: 1, name: 'Super Cat'};
    expect(hero.id).toEqual(1);
  });
});

Les Tests unitaires du travail comme un charme. Le problème est: je vois quelques erreurs, qui sont mentionnés dans le tutoriel:

Notre éditeur et le compilateur peut se plaindre qu'ils ne savent pas ce qu' it et expect sont parce qu'ils manquent de la dactylographie des fichiers qui décrivent Le jasmin. Nous ne pouvons l'ignorer ces ennuyeux des plaintes pour le moment car ils sont inoffensif.

Et en effet, ils l'ont ignoré. Même si ces erreurs sont sans danger, il n'a pas l'air bien dans ma sortie de la console quand je reçois des tas d'entre eux.

Exemple de ce que j'obtiens:

Ne peut pas trouver le nom de "décrire".

Ne peut pas trouver le nom, "elle".

Impossible de trouver le nom de "prévoir".

Que puis-je faire pour le réparer?

406voto

ksharifbd Points 3310

J'espère que vous avez installé -

npm install --save-dev @types/jasmine

Puis placez l’importation suivante en haut du fichier hero.spec.ts -

import {} from 'jasmine';

Cela devrait résoudre le problème.

170voto

Jiayi Hu Points 1541

Avec Typescript@2.0 ou version ultérieure, vous pouvez installer les types avec:

 npm install -D @types/jasmine
 

Ensuite , importez les types en utilisant automatiquement le types options en tsconfig.json :

 "types": ["jasmine"],
 

Cette solution ne nécessite pas import {} from 'jasmine'; dans chaque fichier de spécifications.

27voto

lenny Points 1075
npm install @types/jasmine

Comme indiqué dans certains commentaires l' "types": ["jasmine"] n'est plus nécessaire, tous @types colis sont automatiquement inclus dans la compilation (depuis la v2.1 je crois).

À mon avis, la solution la plus simple consiste à exclure les fichiers de test dans votre tsconfig.json comme:

"exclude": [
    "node_modules",
    "**/*.spec.ts"
]

Cela fonctionne pour moi.

Plus d'informations dans l'officiel tsconfig docs.

13voto

Pace Points 10393

Vous devez installer des typographies pour le jasmin. En supposant que vous utilisez une version relativement récente du manuscrit 2, vous devriez être capable de faire:

npm install --save-dev @types/jasmine

9voto

mvermand Points 76

Avec Typescript@2.0 ou version ultérieure, vous pouvez installer des types avec npm install

 npm install --save-dev @types/jasmine
 

puis importer les types automatiquement en utilisant l'option typeRoots dans tsconfig.json.

 "typeRoots": [
      "node_modules/@types"
    ],
 

Cette solution ne nécessite pas l'importation {} de 'jasmine'; dans chaque fichier de spécifications.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X