React Testing Library'nin felsefesi nedir? Örnek bir test yazın.
Cevap
Felsefe: "Testleriniz yazılımın kullanıldığı şekle ne kadar benzerse, size o kadar güven verir." Bileşenin iç state'ini veya implementasyon detaylarını değil, kullanıcının gördüğünü ve yaptığını test edin.
Elemanlar kullanıcının bulduğu şekilde aranır: önce getByRole, sonra getByLabelText, getByText. data-testid son çaredir.
import { render, screen } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
test("geçersiz e-postada hata mesajı gösterir", async () => {
const kullanici = userEvent.setup();
render(<KayitFormu />);
await kullanici.type(screen.getByLabelText(/e-posta/i), "yanlis-adres");
await kullanici.click(screen.getByRole("button", { name: /kayıt ol/i }));
expect(screen.getByRole("alert")).toHaveTextContent("Geçerli bir e-posta girin");
});Bu test, bileşen içeride useState yerine React Hook Form'a geçse bile bozulmaz.
İlgili Test soruları
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.