IF条件的角度2单元测试

时间:2017-08-04 07:37:03

标签: angular unit-testing jasmine karma-jasmine

我是单元测试的新手。我正在尝试对以下代码的if条件进行单元测试:

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

非常感谢任何输入和指南。

1 个答案:

答案 0 :(得分: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();
    });
});