expectedStrings = [
'abc',
'def',
'ghi'
]
Run Code Online (Sandbox Code Playgroud)
stringToCheck = 'zyxabc'
Run Code Online (Sandbox Code Playgroud)
我想用 Jest 检查 stringToCheck 是否包含预期字符串之一。我已经看到了 stringContaining 和 arrayContaining 方法,但我不确定应该如何组合才能使测试工作。
我想使用接近这个例子的东西:
describe('stringMatching in arrayContaining', () => {
const expected = [
expect.stringMatching(/^Alic/),
expect.stringMatching(/^[BR]ob/),
];
it('matches even if received contains additional elements', () => {
expect(['Alicia', 'Roberto', 'Evelina']).toEqual(
expect.arrayContaining(expected),
);
});
it('does not match if received does not contain expected elements', () => {
expect(['Roberto', 'Evelina']).not.toEqual(
expect.arrayContaining(expected),
);
});
});
Run Code Online (Sandbox Code Playgroud)
我不认为组合 arrayContaining 和 stringContaining 是最好和最易读的方法(如果可能的话)。
相反,只需尝试以下方法:
const numberOfMatches = expectedStrings.filter(x => stringToCheck.indexOf(x) > -1).length;
expect(numberOfMatches).toBeGreaterThan(0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8773 次 |
| 最近记录: |