IF条件的角度2单元测试

问题描述 投票:0回答:1

我是单元测试的新手。我正在尝试对以下代码的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();
    });

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

angular unit-testing jasmine karma-jasmine
1个回答
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();
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.