Comment utiliser les espions Jasmine sur un objet créé à l'intérieur d'une autre méthode?

Donné l'extrait de code suivant, comment voulez-vous créer un Jasmin spyOn test pour confirmer que doSomething qui est appelé lorsque vous exécutez MyFunction?

function MyFunction() {
    var foo = new MyCoolObject();
    foo.doSomething();
};

Voici ce que mon test ressemble. Malheureusement, j'obtiens une erreur lors de la spyOn appel est évalué:

describe("MyFunction", function () {
    it("calls doSomething", function () {

        spyOn(MyCoolObject, "doSomething");
        MyFunction();
        expect(MyCoolObject.doSomething).toHaveBeenCalled();

    });
});

Jasmine ne semble pas reconnaître la doSomething méthode à ce point. Des suggestions?

source d'informationauteur thinkbigthinksmall