如何使用茉莉花和检查标志进行单元测试是否为!==?

时间:2019-12-15 00:18:11

标签: unit-testing jasmine karma-jasmine angular-test angular-unit-test

嘿,所以我想对我的Angular应用程序使用此方法进行单元测试:

public methodEquip(someBonus: Parameters) {
    let flag = false;
    for (const shield of someBonus.items) {
        if (shield.added.length !== 0 || shield.removed.length !== 0) {
            flag = true
        }
        if (flag) {
            return true;
        } else {
            return false;
        }
    }
}

我想对Jasmine进行单元测试。我可以做简单的单元测试,但是现在对我来说太麻烦了,我被困住了。我对单元测试还很陌生,我也不知道该怎么做:/ 你能帮我吗?

我现在只有这个,其余的我也不知道该怎么做:

it('tests methodEquip', () => {
       let flag = false;
       const newMocked = new Parameters;
       component.methodEquip(newMocked);        
});

1 个答案:

答案 0 :(得分:0)

使用茉莉花,任何matcher都可以通过在调用expect之前将与not的调用链接到matcher来评估否定断言。

对于基本类型(布尔,数字,字符串等):

expect(actual).not.toBe(x);

对于对象:

expect(actual).not.toEqual(x);

在您的情况下,测试可能如下所示:

it('#methodEquip should not return false when ...', () => {
    const parameters = new Parameters;
    const actual = component.methodEquip(parameters);
    expect(actual).not.toBe(false);
});
  

由于boolean只有两个可能的值,所以简单地写expect(actual).toBe(true)会更有意义;