如何对函数的返回值进行单元测试-Angular(Jasmine / Karma)

the*_*lin 3 unit-testing jasmine karma-jasmine angular

我想知道是否有一种方法可以正确测试Angular中函数的返回值。我想本质上测试一个测试的返回值是否为真,并编写另一个测试相反的情况。

Ts组件:

    get() {
        if (this.object == undefined) {
            return true;
        } else {
            return false;
        }    
    }
Run Code Online (Sandbox Code Playgroud)

我现在认为适合测试返回值的唯一方法是设置一个变量来保存返回值。下面是我的尝试,我只是坚持要说的是期望。

测试:

it('should call get function and return true', () => {
        //Arrange
        component.object = undefined;

        //Act
        component.get();

        //Assert
        expect(component.get). <-- *stuck here*

    });
Run Code Online (Sandbox Code Playgroud)

Igo*_*gor 12

行为中获取值,然后检查它是否trueassert中

it('should call get function and return true', () => {
        // Arrange
        component.object = undefined;

        // Act
        var result = component.get();

        // Assert
        expect(result).toBe(true);
    });
Run Code Online (Sandbox Code Playgroud)

附带一提,该方法的主体get可以简化为

return this.object === undefined;
Run Code Online (Sandbox Code Playgroud)

  • @Manoj 应该是 `expect(result).toBeTrue();` (4认同)
  • ```expect(result).toBeTruthy();``` // 应该是 toBeTruthy() (3认同)