我真的是新的React Native 测试库。我的应用程序基本上是这样工作的:它获取数据并以我的 asText
格式显示,我使用jsonplace holder api。这是应用程序演示。我创建了一个 Text 在其中定义 test role="header"
。我想测试文本,它在role="header"
. 我制作了一个假数据并尝试对其进行测试。我可以从组件中定位角色,但我不知道如何获取预期的数据。我试过了toBe
,getByText
但每次我得到错误:TypeError: toBe is not function
。
这是我的应用组件
const [state, setState] = React.useState([]);
React.useEffect(() => {
fetch("https://jsonplaceholder.typicode.com/todos/")
.then((response) => response.json())
.then((json) => setState(json));
}, []);
return (
<View style={styles.container}>
{state.map((i) => (
<Text role:'header'>{i.title}</Text>
))}
</View>
);
}
这是我的测试套件
import React from 'react';
import { fireEvent, render, cleanup, act } from '@testing-library/react-native';
import Json from './Json';
describe('<Json/>', () => {
afterEach(cleanup);
test('get data properly', async () => {
const component = <Json/>;
const { getByA11yRole } = render(component);
const header = await getByA11yRole('header');
console.log(header);
expect(header).toBe(/delectus aut autem/);
});
});