Comment puis-je stub/maquette d'une fonction en javascript espace de noms global
Je suis en train de stub/maquette/remplacement d'un appel de fonction au cours des essais qui écrit un journal sur une DB.
function logit(msg) {
writeMessageToDb(msg);
}
function tryingToTestThisFunction(){
var error = processSomething();
if (error) {
logit(error);
}
}
J'aimerais logit()
simplement imprimer à la console pendant le test...et de faire un "isTesting()
" if/else bloc à l'intérieur de la logit()
fonction n'est pas une option.
Est-ce possible sans de quelques autres se moquant de cadre. Je suis actuellement à l'aide JsTestDriver
pour les tests unitaires et n'ont pas eu la chance d'évaluer tout se moquant de cadres. Une solution idéale à l'heure actuelle serait de gérer cela sans un autre cadre.
OriginalL'auteur tjjava | 2010-12-20
Vous devez vous connecter pour publier un commentaire.
- Je utiliser de Jasmin et de Sinon.js (à l'aide de Coffeescript), voici comment j'ai stub les confirmer() méthode à, par exemple, il suffit de retourner la valeur true.
OriginalL'auteur sivabudh
En javascript la dernière définition est la forte prévalence de l'.
donc suffit de redéfinir la méthode logit après la première définition.
exemple : http://www.jsfiddle.net/gaby/UeeQZ/
OriginalL'auteur Gabriele Petrioli
pouvez-vous remplacer la méthode de l'objet window? Dans une console Chromée cela fonctionne
OriginalL'auteur hvgotcodes
juste remplacer le logit de la fonction, ce qui peut être appelée à tout moment au plus tard logit est défini.
OriginalL'auteur Tracker1
J'ai travaillé sur exactement le même problème. Les développeurs m'a donné une appli HTML5 pour tester, alors, évidemment, je ne peux pas changer leur code pour les tests. J'ai décidé d'utiliser qunit et sinon, le long de avec sinon-qunit.
Pour un newb JavaScript tests unitaires comme moi, j'allais noix avec l'sinon de la documentation et des exemples divers sur le web, comme la plupart d'entre elle semble pour l'implicite de l'environnement qui n'est pas mentionnée. Le code ci-dessous est une page complète, donc j'espère que rien n'est laissé pour la confusion.
La fonction que j'ai à composer est le
caller()
et je ne peux rien faire à propos destubme()
parce que c'est le développeur du code. Cependant, je peux ajoutersinonstub()
dans mon code de test. Mais la façon de l'obtenir pour fonctionner avec sinon? L'sinon documentation vraiment confus de moi pendant un moment, mais ci-dessous est la solution la plus simple. Le stub4stubme objet peut être utilisé pour le contrôle de la fusée d'action, et également obtenir les informations sur ce qui se passe avec la stub des appels.OriginalL'auteur bmiller
Parce que dans le Javascript n'est pas seulement runtime lié, mais le dernier mot gagne lié, juste redeclare la méthode avec le comportement que vous voulez dans votre test:
OriginalL'auteur Lance Kind