React Native
fireEvent
fireEvent ile olay tetiklemeyi öğrenirsin.
fireEvent nedir?
fireEvent, test içinde kullanıcı olaylarını taklit eden RNTL fonksiyonudur. fireEvent.press(element) bir butona basma, fireEvent.changeText(element, 'metin') metin girişini simüle eder. Bileşenin tepkisini test etmenizi sağlar.
Tipik akış: bileşeni render ile çizer, getByText ile bir buton bulur, fireEvent.press ile basar ve sonucunu expect ile denetlersin. Bu, gerçek bir kullanıcının yaptığını test ortamında yapar. fireEvent senkron çalışır; olay işleyici bitince çizim güncellenir. Asenkron işlemler için waitFor gerekir.
Uygulama fireEvent ile bas
Bir App bileşeni zaten tanımlı; bir buton ve sayaç içerir. render(<App />) ile çiz. getByText('Artır') ile butonu bul. fireEvent.press ile bas. getByText('1') ile sonucu denetle.
Örnek çözümü göster
import { render, fireEvent } from "@testing-library/react-native";
import { Button, Text, View } from "react-native";
import { useState } from "react";
function App() {
const [count, setCount] = useState(0);
return (
<View>
<Text>{count}</Text>
<Button title="Artır" onPress={() => setCount(count + 1)} />
</View>
);
}
test("butona basınca artar", () => {
const { getByText } = render(<App />);
fireEvent.press(getByText("Artır"));
expect(getByText("1")).toBeTruthy();
});
Press olayı
fireEvent.press(element) bir öğeye basma olayı gönderir. onPress prop'u olan her bileşende çalışır: Button, TouchableOpacity, Pressable. Öğe getByText veya getByTestId ile bulunur.
Basma olayı, onPress işleyicisini çağırır; state güncellenir ve çizim yenilenir. Sonraki getByText çağrısı yeni durumu görür. fireEvent.changeText ise TextInput'a metin girişini simüle eder; onChangeText işleyicisini çalıştırır. Her olay türü için ayrı bir metod vardır: fireEvent.scroll, fireEvent.focus vb. Doğru metodu seçmek, testin gerçekçi olmasını sağlar.
Kendini test et
-
fireEvent ne yapar?
fireEvent.press(button);
- Bileşeni stillendirir
- Kullanıcı olaylarını taklit eder
- Veriyi saklar
- Ağa istek atar
Cevabı göster
Kullanıcı olaylarını taklit eder — fireEvent kullanıcı olaylarını taklit eder.
-
fireEvent çağrısı
fireEvent.____(button);
Cevabı göster
fireEvent.press(button);
-
Olayı rolüne eşle
- fireEvent.press
- Butona basar
- fireEvent.changeText
- Metin girer
- fireEvent.scroll
- Kaydırır
- fireEvent.focus
- Odaklar
Sıradaki ders: Özet - Test