用jest检查字符串是否包含'abc'或'cde'

zrfyljdw  于 2023-08-01  发布在  Jest
关注(0)|答案(4)|浏览(139)

我想用jest检查字符串是否包含'abc'或'cde'。

const substr1 = 'abc'
const substr2 = 'cde'
const str = 'ooocdeooo'

字符串
我在用

expect(str).toContain(substr1);


但是我找不到一个干净的方法来检查substr1或substr2是否在str中,我该怎么做呢?谢谢你,谢谢

5hcedyr0

5hcedyr01#

您可以在toMatch中使用正则表达式
例如:

expect(str).toMatch(/(abc|cde)/i)

字符串

bsxbgnwa

bsxbgnwa2#

您可以使用toContain Jest matcher https://jestjs.io/docs/en/expect#tocontainitem

.toContain(item)

如果要检查某个元素是否在数组中,请使用.toContain。为了测试数组中的项,它使用了===,这是一种严格的相等检查。.toContain还可以检查一个字符串是否是另一个字符串的子字符串。
例如,如果getAllFlavors()返回一个flavors数组,并且你想确保lime在其中,你可以这样写:

test('the flavor list contains lime', () => {
 expect(getAllFlavors()).toContain('lime');
});

字符串

t5zmwmid

t5zmwmid3#

你可能也在找一个像这样的

expect.stringMatching(/(abc|def)/i)
expect.stringContaining("abc")

字符串

efzxgjgh

efzxgjgh4#

我试图匹配一个变量,将一个变量插入正则表达式(就像在接受的答案中一样)看起来很复杂。相反,我发现成功与:

const tree = renderer.create(<Component {...mockProps} />).toJSON();
const treeString = JSON.stringify(tree);

expect(treeString.includes(mockProps.individualProp)).toBeTruthy();

字符串
More info here on .includes()的数据。

相关问题