2017-08-04 51 views
0

我是单元测试的新手。我试图单元测试,如果条件下面的代码:IF条件下的角度2单元测试

hide() { 
     this.count --; 
     if (this.count === 0) { 
      this.loaderIs = false; 
     } 
    } 

我想对loaderIs变量使用间谍功能。

it('hide function check',() => { 
     expect(loaderService.hide).toBeDefined(); 
     spyOn(loaderService, 'loaderIs'); 
     loaderService.hide(); 
     expect(loaderService.loaderIs).toHaveBeenCalled(); 
    }); 

任何输入和指南的高度赞赏。

回答

0

事情是,你不应该模拟你正在测试的单元。 (在你的情况下,它是hide方法)。调用hide方法应调用实际方法。请参阅下面的代码

describe('Some test: ',() => { 
    beforeEach(() => { 
     loaderService.loaderIs = false; 
     // ... 
    }); 

    it('loaderIs should be falsy',() => { 
     loaderService.count = 1 
     loaderService.hide(); 
     expect(loaderService.loaderIs).toBeFalsy(); 
    }); 

    it('loaderIs should be truthy',() => { 
     loaderService.count = 2 
     loaderService.hide(); 
     expect(loaderService.loaderIs).toBeTruthy(); 
    }); 
});