Tester ses Behaviors Marionette.js

Kezako Behaviors ?

> petit check-up

From ze docs

A Behavior is an isolated set of DOM / user interactions that can be mixed into any View or another Behavior.

Behaviors allow you to blackbox View-specific interactions into portable logical chunks, keeping your Views simple and your code DRY.

Concrètement

Explications, implémentation et détails techniques très bien présentés par Stéphane Bachelier au meetup Backbone.js Paris S01E06

Un exemple pratique

Tester ses behaviors, yaka !

> Les problématiques

PB #1 : Tester l'API ?

const Alert = Marionette.Behavior.extend( {

  defaults: {
    title: "Alert!",
    message: "Not really urgent"
  },

  events: {
    "click": "emitAlert"
  },

  emitAlert() {
    alert( this.options.message );
  }

} );
it( "should emit an alert", () => {

  // => This won't work
  expect( Behavior.emitAlert() ).toEmitAnAlert();

} );

PB #2 : Couplage avec la vue

Tester une Behavior indépendamment d'une vue :

  • beaucoup de setup
  • peu de valeur ajoutée
  • ne vérifie pas que l'interaction
    Behavior-View fonctionne bien dans notre réalité

PB #3 : duplication du code de test

Tester l'interaction Behavior-View dans chaque test de vue…

Solution proposée

Articles sur la question

Merci ! Des questions ?