Comment se moquer de la dépendance des classes pour les tests unitaires avec mocha.js?
Étant donné que j'ai deux ES6 classes.
C'est la classe A:
import B from 'B';
class A {
someFunction(){
var dependency = new B();
dependency.doSomething();
}
}
Et de la classe B:
class B{
doSomething(){
//does something
}
}
Je suis de tests unitaires à l'aide de moka (avec babel pour ES6), chai et sinon, qui fonctionne vraiment bien. Mais comment puis-je fournir une maquette de la classe pour la classe B, lors de l'essai de la classe A?
Je veux de se moquer de l'ensemble de la classe B (ou de la fonction désirée, n'a pas de réelle importance), de sorte que la classe A ne pas exécuter le code réel, mais je peux fournir des fonctionnalités de test.
C'est, ce que l'moka test ressemble pour l'instant:
var A = require('path/to/A.js');
describe("Class A", () => {
var InstanceOfA;
beforeEach(() => {
InstanceOfA = new A();
});
it('should call B', () => {
InstanceOfA.someFunction();
//How to test A.someFunction() without relying on B???
});
});
- lisez à propos de DI
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser SinonJS pour créer un stub pour prévenir la véritable fonction à exécuter.
Par exemple, pour la classe A:
Et de la classe B:
Le test pourrait ressembler à:
Vous pouvez alors restaurer la fonction, si nécessaire, à l'aide de
object.method.restore();
: