【问题标题】:Angular 2 Unit Test for IF conditionIF条件的Angular 2单元测试
【发布时间】:2017-08-04 07:37:03
【问题描述】:

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

    问题是你不应该模拟你正在测试的单元。 (在您的情况下,它是 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();
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2021-10-03
      • 2017-10-10
      • 2016-12-29
      • 2018-04-11
      • 2017-06-28
      • 1970-01-01
      • 2017-06-03
      • 1970-01-01
      相关资源
      最近更新 更多