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 anyView
or anotherBehavior
.
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…