CodeBlanks Logo Icon CodeBlanks

getByText

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

App.js
// 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

App.js
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ı

Soru
const el = ____('Merhaba');
Cevap
const el = getByText('Merhaba');

Açıklama: getByText metni ile öğeyi bulur.

3 getByText metin bulamazsa ne yapar?

App.js
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.

Orta seviye bölümündeki tüm dersler