2016-07-12 9 views
0

Wie würde ich Mock der Aufruf einer Methode eines Singleton, wie:Jasmin: Mocking innere Methode von Singletons

Foo.get().getBar(); 

es einfach scheint zu verspotten Foo.getBar(); mit

jasmine.createSpyObj(Foo, ['get']); 
Foo.get.and.returnValue(); 

Aber ich habe mit Abhängigkeiten injiziert und kann es nicht richtig funktionieren. FWIW: getBar ein Versprechen gibt, so versuche ich wirklich Foo.get().getBar().then() zu verspotten, die ich mir vorstellen muss so etwas wie

Foo.get.getBar.and.callFake(() => { return deferred.promise; }); 

Antwort

1

Sie sein haben es auf diese Weise zu tun:

describe('Foo.get().getBar()',function(){ 
    it('is happy',function(){ 
    var Foo = jasmine.createSpyObj('Foo', ['get']); 
    console.log(Foo); 
    Foo.get.andReturn({ 
     getBar: function() { 
     return 'happy'; 
     } 
    }); 
    expect(Foo.get().getBar()).toBe('happy'); 
    }); 
}); 

Hoffnung, die hilft !! !