getByText
- React Native kursu
- Orta seviye
- Ders 97/116
- 5 dk
getByText ile öğe bulmayı öğrenirsin.
getByText nedir?
getByText, çizilen ağaçta metni verilen değere eşit olan öğeyi bulan bir sorgudur. getByText('Merhaba') çağrısı 'Merhaba' metnini içeren Text bileşenini döndürür. Birden fazla eşleşme varsa hata fırlatır.
Bu sorgu, kullanıcı görsel metne dayalı testler yazmak için idealdir. Uygulamanın iç yapısına değil, ekranda görünen metne odaklanır. Metin değişirse test de güncellenmelidir; bu yüzden sık değişen metinler için testID tercih edilebilir. Yine de davranış odaklı testlerde getByText en doğal seçimdir; okunabilir ve anlamlıdır.
Bulunan öğe
getByText bir öğe döndürür; bu öğe üzerinde expect ile denetim yapılır. Örneğin expect(getByText('Merhaba')).toBeTruthy() öğenin var olduğunu söyler. expect(getByText('Merhaba')).toBeDefined() benzer bir denetimdir.
Bazen metnin değişip değişmediğini test etmek istersin. Önce getByText('Eski') ile öğeyi bulur, etkileşim yapıp, sonra getByText('Yeni') ile değiştiğini kontrol edersin. Bulunamazsa getByText hata fırlatır; test kırmızı olur. Bu istisna, yokluğu test etmek için kullanılabilir: expect(() => getByText('Silindi')).toThrow() öğenin artık olmadığını doğrular.
Uygulama getByText ile öğe bul
Bir App bileşeni zaten tanımlı; <Text>Hoş geldin</Text> döndürür. render(<App />) çağır; getByText ile 'Hoş geldin' metnini bul. expect(...).toBeTruthy() ile denetle.
Başlangıç kodu
// render'ı içe aktar
// 'karşılama var' adında bir test yaz
// render ile App'i çiz; getByText ile 'Hoş geldin' bul; toBeTruthy ile denetleÖrnek çözüm
import { render } from "@testing-library/react-native";
import { Text } from "react-native";
function App() {
return <Text>Hoş geldin</Text>;
}
test("karşılama var", () => {
const { getByText } = render(<App />);
expect(getByText("Hoş geldin")).toBeTruthy();
});Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Sorguyu davranışına eşle
| Kavram | Anlamı |
|---|---|
getByText |
Metin bulursa döner |
getByTestId |
testID ile bulur |
getAllByText |
Tüm eşleşenleri döner |
queryByText |
Bulamazsa null döner |
2 getByText çağrısı
const el = ____('Merhaba');
const el = getByText('Merhaba');
Açıklama: getByText metni ile öğeyi bulur.
3 getByText metin bulamazsa ne yapar?
const el = getByText('yok');- Hata fırlatır Doğru cevap
- undefined döndürür
- null döndürür
- Boş dizi döndürür
Açıklama: getByText bulamazsa hata fırlatır.