Modifier: Ma question initiale n'incluait pas .bind
dans funcToTest. Cela semble être ce qui échoue le test.jasmine - Comment faire la comparaison d'égalité entre la fonction et la méthode objet assignée avec .bind?
Je suis en train de tester une méthode qui affecte une fonction à la propriété d'un objet.
Je souhaite vérifier que la propriété nouvellement créée est égale à la fonction. Ni toBe
ni toEqual
n'obtiennent le test.
Quelle est la meilleure pratique dans ce cas?
class TestClass {
constructor() {
}
initMyObj() {
this.myObj = {
func: this.myFunc.bind(this) //it works fine without .bind
}
}
funcToTest() {
console.log('Thanks for reading!');
}
}
describe('TestClass', function() {
beforeEach(function() {
this.test = new TestClass();
});
it('should set "myObj.func" property to funcToTest method', function() {
this.test.initMyObj();
expect(this.test.myObj.func).toBe(this.test.funcToTest); //fails with `Expected Function to be Function.`
expect(this.test.myObj.func).toEqual(this.test.funcToTest); //fails with `Expected Function to equal Function.`
})
})
Notez également - si je retire .bind(this)
, cela fonctionne très bien.