Ma question concerne le test javascript de l'unité utilisant Mocha. En fin de compte, cela peut être une question sur l'injection de dépendance ou l'inversion de contrôle, j'ai une mauvaise compréhension de ces concepts.Code de test unitaire qui utilise Modernizr
J'essaie d'écrire un test qui crée simplement une instance de header.js et teste que c'est un objet. Cependant, chaque fois que je le fais, mon test explose quand il charge Modernizr, avec le message d'erreur suivant. Cela semble se produire parce que Modernizr dépend de l'exécution dans le navigateur, mais mes tests unitaires doivent s'exécuter sur la ligne de commande.
/lib/modernizr.js:8
"MozAppearance" dans l.style, s = r & & !! b.createRange() compareNode, t = s l:.? N.parentNod ^ TypeError: Impossible de lire la propriété 'parentNode' de définie à /Users/devadmin/devenv/djscript/djscript-vendor/lib/modernizr.js:8:6291
j'ai des modules requirejs qui se trouvent dans la hiérarchie suivante:
lib
└── pj
├── module
│ └── header
│ └── header.js
├── util
│ └── header
│ └── Util.js
└── widget
└── header
├── Header.js
└── view
├── HeaderView.js
└── NavView.js
header.js instancie Header.js, qui à son tour crée un HeaderView et un NavView. Seul HeaderView nécessite Modernizr.
Des conseils sur la façon dont je peux mettre ce code dans un état testable? Serait-il utile de voir comment j'ai emballé Modernizr pour une utilisation avec requirejs?
semble utile, mon test a été un gros bordel, pourrait descendre cette question tout à fait. – the0ther