在Jest、Enzyme和React测试中,你可以使用toContain
匹配器来检查文本是否包含在一组值中。以下是这些库的具体用法:
Jest的toContain
匹配器用于数组或字符串,检查它们是否包含指定的值。
test('array contains value', () => {
const array = [1, 2, 3];
expect(array).toContain(2);
});
test('string contains substring', () => {
const str = 'Hello, world!';
expect(str).toContain('world');
});
Enzyme是一个用于测试React组件的库。你可以使用find
方法结合text
方法来检查组件的文本内容。
import React from 'react';
import { shallow } from 'enzyme';
import MyComponent from './MyComponent';
test('component contains text', () => {
const wrapper = shallow(<MyComponent />);
expect(wrapper.text()).toContain('Expected Text');
});
如果你想检查组件内的某个特定元素是否包含文本,你可以使用find
方法来定位该元素。
test('specific element contains text', () => {
const wrapper = shallow(<MyComponent />);
expect(wrapper.find('.specific-class').text()).toContain('Expected Text');
});
React Testing Library鼓励编写更接近用户行为的测试。你可以使用screen.getByText
或queryByText
来查找包含特定文本的元素。
import React from 'react';
import { render, screen } from '@testing-library/react';
import MyComponent from './MyComponent';
test('component contains text', () => {
render(<MyComponent />);
expect(screen.getByText(/Expected Text/i)).toBeInTheDocument();
});
在这个例子中,/Expected Text/i
是一个正则表达式,i
标志表示不区分大小写。
领取专属 10元无门槛券
手把手带您无忧上云