我想用jest检查字符串是否包含'abc'或'cde'。
const substr1 = 'abc' const substr2 = 'cde' const str = 'ooocdeooo'
字符串我在用
expect(str).toContain(substr1);
型但是我找不到一个干净的方法来检查substr1或substr2是否在str中,我该怎么做呢?谢谢你,谢谢
5hcedyr01#
您可以在toMatch中使用正则表达式例如:
toMatch
expect(str).toMatch(/(abc|cde)/i)
字符串
bsxbgnwa2#
您可以使用toContain Jest matcher https://jestjs.io/docs/en/expect#tocontainitem
toContain
如果要检查某个元素是否在数组中,请使用.toContain。为了测试数组中的项,它使用了===,这是一种严格的相等检查。.toContain还可以检查一个字符串是否是另一个字符串的子字符串。例如,如果getAllFlavors()返回一个flavors数组,并且你想确保lime在其中,你可以这样写:
.toContain
===
test('the flavor list contains lime', () => { expect(getAllFlavors()).toContain('lime'); });
t5zmwmid3#
你可能也在找一个像这样的
expect.stringMatching(/(abc|def)/i) expect.stringContaining("abc")
efzxgjgh4#
我试图匹配一个变量,将一个变量插入正则表达式(就像在接受的答案中一样)看起来很复杂。相反,我发现成功与:
const tree = renderer.create(<Component {...mockProps} />).toJSON(); const treeString = JSON.stringify(tree); expect(treeString.includes(mockProps.individualProp)).toBeTruthy();
字符串More info here on .includes()的数据。
4条答案
按热度按时间5hcedyr01#
您可以在
toMatch
中使用正则表达式例如:
字符串
bsxbgnwa2#
您可以使用
toContain
Jest matcher https://jestjs.io/docs/en/expect#tocontainitem.toContain(item)
如果要检查某个元素是否在数组中,请使用
.toContain
。为了测试数组中的项,它使用了===
,这是一种严格的相等检查。.toContain
还可以检查一个字符串是否是另一个字符串的子字符串。例如,如果getAllFlavors()返回一个flavors数组,并且你想确保lime在其中,你可以这样写:
字符串
t5zmwmid3#
你可能也在找一个像这样的
字符串
efzxgjgh4#
我试图匹配一个变量,将一个变量插入正则表达式(就像在接受的答案中一样)看起来很复杂。相反,我发现成功与:
字符串
More info here on .includes()的数据。