CodeBlanks Logo Icon CodeBlanks

render

render ile bileşen render etmeyi öğrenirsin.

render ne döndürür?

render bir bileşeni çizer ve bir sonuç nesnesi döndürür. Bu nesne üzerinde sorgu fonksiyonları bulunur: getByText, getByTestId, getByPlaceholderText gibi. Sorgular çizilen ağaçtan öğe bulur.

Tipik kullanım: const { getByText } = render(<App />). Burada getByText ayırma (destructuring) ile sonuç nesnesinden alınır. getByText('Merhaba') çağrısı metni 'Merhaba' olan öğeyi döndürür. Bulamazsa hata fırlatır; bu, testin kırmızı olmasına yol açar. Bu yüzden getByText varlığı kesin olan metinler için kullanılır.

render sonucu

render'dan dönen nesne üzerinde en sık kullanılan sorgular şunlardır: getByText metinle, getByTestId testID prop'una göre, getByPlaceholderText yer tutucu metinle öğe bulur. Her biri bir öğe döndürür; bulunamazsa hata fırlatır.

Sorgulardan dönen öğe üzerinde expect(el).toBeTruthy() gibi denetimler yapılır. Bazen bir sorgu birden fazla öğe döndürebilir; o durumda getAllByText kullanılır ve dizi döner. Test yazarken en kararlı sorguyu seç: metin değişebilir ama testID sabit kalır. Bu yüzden üretimde testID tercih edilir.

Uygulama render ile sorgu kullan

Bir App bileşeni zaten tanımlı; <Text>Merhaba</Text> döndürür. render(<App />) çağır; sonuçtan getByText al. getByText('Merhaba') ile öğeyi bul ve expect(...).toBeTruthy() ile denetle.

Başlangıç kodu

App.js
// render'ı içe aktar

// 'merhaba var' adında bir test yaz
// render ile App'i çiz; getByText ile 'Merhaba' 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>Merhaba</Text>;
}

test("merhaba var", () => {
  const { getByText } = render(<App />);
  expect(getByText("Merhaba")).toBeTruthy();
});

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 render sonucundan sorgu al

Soru
const { ____ } = render(<App />);
Cevap
const { getByText } = render(<App />);

Açıklama: getByText metinle öğe bulur.

2 render hangi ortamda çalışır?

App.js
const { getByText } = render(<App />);
  • Tarayıcıda
  • Cihazda
  • Üretimde
  • Test ortamında Doğru cevap

Açıklama: render JavaScript test ortamında çalışır.

3 Sorguyu rolüne eşle

Kavram Anlamı
getByText Metinle bulur
getByTestId testID ile bulur
getByPlaceholderText Yer tutucu ile bulur
getAllByText Tüm eşleşenleri bulur

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