Attend un espion, mais j'ai reçu de la Fonction
Je suis en train de mettre en œuvre un test (1) pour ce module (2).
Mon but est de vérifier si la collection est récupérée lorsqu'un événement est déclenché.
Comme vous pouvez le voir dans mon commentaire en (2), je reçois le message Error: Expected a spy, but got Function.
Le module fonctionne, mais le test échoue. des idées?
(1)
//jasmine test module
describe('When onGivePoints is fired', function () {
beforeEach(function () {
spyOn(this.view.collection, 'restartPolling').andCallThrough();
app.vent.trigger('onGivePoints');
});
it('the board collection should be fetched', function () {
expect(this.view.collection.restartPolling).toHaveBeenCalled();
//Error: Expected a spy, but got Function.
});
});
(2)
//model view module
return Marionette.CompositeView.extend({
initialize: function () {
this.collection = new UserBoardCollection();
this.collection.startPolling();
app.vent.on('onGivePoints', this.collection.restartPolling);
},
//other code
});
- il n'y a pas assez de code pour voir ce qui se passe. veuillez inclure plus que juste les fonctions individuelles - inclure la définition de l'objet que les fonctions appartiennent, et le code qui instancie les objets, au moins.
- merci pour votre temps. J'ai mis à jour ma question avec le mode code.
- J'utilise QUnit plutôt que de Jasmin, mais ne devrait pas votre appel à l'application.l'évent.déclencheur d'être dans le "elle" de la méthode plutôt que de beforeEach?
- actuellement j'ai une autre erreur:
Expected a spy, but got Function
. J'ai mis à jour ma question.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour entrer dans la méthode actuelle, qui dans ce cas est sur le prototype.
D'espionnage sur le prototype est une belle astuce que vous pouvez utiliser lorsque vous ne pouvez pas obtenir à l'instance réelle que vous souhaitez espionner.
J'avais aussi le même problème mais je l'ai résolu en passant un argument dans l'appel de fonction. Ensuite, vous devez écrire votre cas de test de ce genre dans la
it
J'ai eu ce bug car j'ai eu deux versions de sinon chargé, ou j'ai peut-être n'était pas en cours d'initialisation sinon-jasmin correctement. Quand j'ai explicitement chargé sinon et puis sinon jasmin dans mon spec de l'installation, il a commencé à courir correctement.