0

嘿,所以我在我的 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);        
});
4

1 回答 1

0

使用 Jasmine,任何人matcher都可以通过expectnot调用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)

于 2019-12-15T11:41:23.423 回答