Prerequisite

Kahraman ve kötü adam bileşen gruplarında kullanılacak yeni arayüzler ve türler oluşturun.

// src/models/Villain.ts
export interface Villain {
  id: string;
  name: string;
  description: string;
}
// src/models/types.ts
import { Hero } from "./Hero";
import { Villain } from "./Villain";

export type HeroProperty = Hero["name"] | Hero["description"] | Hero["id"];
export type VillainProperty =
  | Villain["name"]
  | Villain["description"]
  | Villain["id"];

export type EntityRoute = "heroes" | "villains";

export type EntityType = "hero" | "villain";

Hook'ları Güncelleme

Hook'larımızı daha genel hale getirerek, kötü adam bileşenlerinde sorunsuz bir şekilde kullanılabilmesini sağlamak istiyoruz. Kısacası, useCRUDhero hook'larını useCRUDentity ile değiştireceğiz.

useDeleteEntity, useDeleteHero yerine geçer.

useEntityParams, useHeroParams yerine geçer..

useGetEntities, useGetHeroes yerine geçer.

usePostEntity, usePostHero yerine geçer..

usePutEntity, usePutHero yerine geçer..

Kahraman bileşenlerini güncelleyin

Hook'ları değiştirdikten sonra, kahraman bileşenleri küçük değişikliklere ihtiyaç duyar.

Uygulama ayrıntıları test etmeyle ilgili not

Cypress e2e, CT veya RTL testlerinde MSW ile herhangi bir uygulama ayrıntısı test etmediğimiz için bu testlerde herhangi bir değişiklik yapmaya gerek yoktur. Şu anki halleriyle çalışacaklardır.

cy.intercept ve MSW ile, ağ isteğinin dışarı çıktığını kontrol ettik ve işlemi gerçekleştiren hook'un çağrıldığını kontrol ettik. Bu nedenle, hook'ları değiştirmek, testlerin veya işlevselliğin üzerinde herhangi bir etkisi olmamıştır. İşte bu yüzden biraz daha yüksek bir soyutlama düzeyinde test etmek istiyoruz ve uygulama ayrıntılarına karşı uygulamanın sonuçlarını doğrulamak istiyoruz.

E2e komutlarını daha genel hale getirin

Kötü adamların e2e testleri tamamen aynı görünecek, ancak komutlarımız kahramanlara özgüdür. Aynı zamanda daha genel hale getirilebilirler, böylece kahramanlar grubundaki testleri kötü adamlara yansıtmak daha kolay olur.

Komutlar dosyasında, hero ifadelerini entity ile değiştiriyoruz ve türler için villain çeşitlerini hero yanına ekliyoruz. Bu değişiklik, tür tanımları ve e2e testlerine küçük güncellemeler gerektirecektir.

Kahramanların kötü adamların aynası oluşturun

Kitabın temasına uygun olarak, önce kötü adamlarla ilgili testler oluşturacağız.

Yerel kahramanlar test kopyanız biraz farklıysa, isteğe bağlı olarak onları düzenleyebilirsiniz.

E2e testlerinin aynasını oluşturun

Kahraman versiyonlarının kötü adamların aynası olan 3 yeni e2e testi oluşturuyoruz. Ayrıca, kalan testleri kötü adamlarla ilgili özellikleri kontrol etmek için geliştiriyoruz.

Arka uç testi, kötü adamları kapsamak için yeni bir bloğa ihtiyaç duyar.

Yönlendirme-gezinme, kötü adamlar rotasını kapsamak için yeni bir teste ihtiyaç duyar.

Cypress bileşen testlerinin aynasını oluşturun.

cypress/fixtures/villains.json adresinde kötü adamlar için yeni bir düzeltme oluşturun.

RTL testlerinin aynasını oluşturun.

App.cy.tsx ve App.test.tsx'yi geliştirin.

3 kahraman bileşenini kötü adam bileşenlerine yansıtın

Kötü adamlar için 3 bileşen oluşturuyoruz, kahramanlar grubunu olduğu gibi yansıtıyoruz.

App.tsx'ye /villains rotasını ekleyin.

Last updated