如何在Jest测试中使用枚举的字符串表示,

r1zhe5dt  于 2023-06-27  发布在  Jest
关注(0)|答案(2)|浏览(130)

使用下面的枚举编写Jest test.each()测试时

enum MyEnum {
    FirstValue,
    SecondValue,
    ThirdValue
}

describe('my example', () => {
    test.each([MyEnum.FirstValue, MyEnum.SecondValue, MyEnum.ThirdValue])(
        '%o',
        (input: MyEnum) => {
            expect(input).toBeDefined();
        }
    );
});

输出文本为:

my example
  0
  1
  2

我希望是

my example
  FirstValue
  SecondValue
  ThirdValue

使用Jest文档中列出的其他格式参数(如%p%j)不会改变任何内容

hrysbysz

hrysbysz1#

我刚想到一个答案,我可以用describe.each代替:

describe.each(testcases)('my test', (input: MyEnum) => {
    test(`${MyEnum[input]}`, () => {
        expect(input).toBeDefined();
    });
});
tcomlyy6

tcomlyy62#

你可以把enun转换成array,避免硬核它,并把它添加到每个

enum MyEnum {
    FirstValue,
    SecondValue,
    ThirdValue
}

describe('my example', () => {
let myEnum: string[] = Object.keys(MyEnum);
    test.each(myEnum)('my enum %p', (enum) => {
            expect(enum).toBeDefined();
        }
    );
});

相关问题