【问题标题】:Jasmine: Mocking inner method of singletonJasmine:模拟单例的内部方法
【发布时间】:2016-07-12 06:04:13
【问题描述】:

我将如何模拟对单例方法的调用,例如:

Foo.get().getBar();

模拟 Foo.getBar(); 似乎很简单
jasmine.createSpyObj(Foo, ['get']);
Foo.get.and.returnValue();

但我一直在研究依赖注入,但不能让它正常工作。 FWIW:getBar 返回一个承诺,所以我真的想模拟Foo.get().getBar().then(),我想它一定是这样的

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

【问题讨论】:

    标签: javascript unit-testing jasmine ecmascript-6


    【解决方案1】:

    你必须这样做:

    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');
      });
    });
    

    希望对你有帮助!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-04
      • 2022-12-09
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      相关资源
      最近更新 更多