私は本当に新しいReact Native Testing Libraryです。私のアプリは基本的に次のように機能します。データをフェッチして asText
形式で表示し、 jsonplace holder apiを使用しました。これはapp-demoです。test を定義する Text を 1 つ作成しまし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/);
});
});