Tests et Expérience Développeur

Chapitre 6

Outline
04:20

  • Type safety: TypeScript
  • Tests
  • Contrôle de version et intégration

Type Safety
04:20

Le JavaScript est lentement remplacé par le TypeScript.

Use of technologies over time

TypeScript
04:20

Definition

TypeScript est un superset de JavaScript avec des annotations de types. Il est ensuite retransformé en JavaScript.

Question

Pourquoi employer TypeScript?

  • Permet aux éditeurs de texte de guider le programmeur
  • Le compilateur peut repérer des erreurs à l'avance
  • Permet de structurer la communication de données

GraphQL vs REST
04:20

Recall

GraphQL et REST sont deux styles d'API

Un avantage non-négligeable de GraphQL est le typage. Même si l'API est externe ou écrite en un autre langage, il existe des outils pour générer des annotations TypeScript.

Tests
04:20

Il existe plusieurs types de tests

  • Tests unitaires: concerne une petite portion de code (unité) (e.g. fonction)
  • Tests d'intégration: vérifie comment plusieurs portions de code se comportent (i.e. fonctionnalité)
  • Tests end-to-end: fonctionnalité et performance de l'application entière en simulant des scénarios réels

Tests unitaires: pourquoi?
04:20

Questions

Pourquoi écrire des tests unitaires?

  • Repère les erreurs plus tôt dans le cycle de développement
  • Force les développeurs à découper leur code
  • Filet de sécurité contre les régressions en cas de modifications
  • Est une forme de documentation et spécification développeur

Tests unitaires: interface utilisateur
04:20

Example

Voici un exemple de test unitaire.

Question

Quel est le but du test unitaire ci-dessus?

Remark

L'arrivée des frameworks de composants a fortement simplifié le développement de tests unitaires.

Mocking
04:20

Parfois, il est utile de simuler des interactions pour cibler un test ou pour des raisons de performances.

Tests end-to-end
04:20

Teste toute l'application.

Contrôle de version et intégration
04:20

Question

Comment et quand sont exécutés les tests?

Ils sont normalement exécutés lorsque on pousse du code sur le système de contrôle de version.

Déroulement classique

  • Le développeur développe une fonctionnalité sur sa branche
  • Elle ou il écrit des tests pour sa fonctionnalité
  • Elle ou il pousse sa branche
  • Les tests sont exécutés
  • Si les tests sont réussis, la fonctionnalité est intégrée dans la branche principale