CCTDD(tr): Cypress Bileşen Test Odaklı Tasarım
  • CCTDD: Cypress Bileşen Test Odaklı Tasarım
  • ch00-stiller
  • ch01-ButtonFooter
  • ch02-CardContent
  • ch03-HeaderBarBrand
  • ch04-HeaderBar
  • ch05-InputDetail
  • ch06-ListHeader
  • ch07-ModalYesNo
  • ch08-NavBar
  • ch09-NotFound
  • ch10-HeroDetail
  • ch11-HeroList
  • ch12-Heroes-part1-lifting-state
  • ch13-react-router
  • ch14-Heroes-part2-react-router
  • ch15-api-json-server
  • ch16-Heroes-part3-useEffect-http
  • ch17-react-query
  • ch18-suspense-errBoundary-concurrency
  • ch19-Villains-context-api
    • Prerequisite
  • ch20-TheBoys-ramda-with-react
    • Prerequisite
Powered by GitBook
On this page
  • Önsöz
  • Teşekkürler
  • Bağlantılar ve Kaynaklar
  • Cypress Bileşen + e2e örnekleri bulunan GitHub depoları
  • Gelecek
  • Sorular, Yorumlar ve Geri Bildirimler
  • Kurulum

CCTDD: Cypress Bileşen Test Odaklı Tasarım

Nextch00-stiller

Last updated 2 years ago

Önsöz

kitabının Türkçe çevirisidir.

Cypress Bileşen Testi ile TDD (Test Driven Design) uygulamanın, mühendisliğimizi bir üst seviyeye taşıyabileceğine inanıyorum.

Bu kitapta Angular'ın Kahramanlar Turu'nu (Tour of Heroes), Cypress, React ve TS kullanarak bileşen test odaklı bir şekilde yeniden oluşturacağız. Bileşenleri oluşturduktan sonra, TDD'nin yönlendirme, durum yönetimi ve Cypress e2e testi ile nasıl uygulanabileceğini inceleyeceğiz. Ayrıca Cypress ile API e2e testi hakkında bilgi edineceğiz ve UI entegrasyon testlerinin nerede yer alacağını göreceğiz.

Gereksinim özellikleri için kullanacağız. Kitabın ilk yarısında, bileşenlerimizi mühendislik için Cypress bileşen testi ile test odaklı tasarım yaklaşımını kullanacağız. Önce alt bileşenler üzerinde çalışacağız ve yol kat edeceğiz. Tıklama olayı işleyicileri için karar vermemiz gereken zamana kadar console.log kullanacağız.

Daha sonraki bölümlerde durum ve yönlendirmeye değindiğimizde, Cypress e2e testi TDD için daha alakalı hale gelecek ve bileşen test paketi, uygulamamızın hala beklendiği gibi çalıştığı konusunda bize güvence sağlayacaktır.

Her bölümde TDD'nin Kırmızı Yeşil Düzenleme döngülerini açıkça yakalayacak ve Cypress bileşen testinin React Testing Library'ye (RTL) 1:1 kıyaslaması ile bir özet ve anahtar noktalarla sona ereceğiz. Her kod örneği, kopyalanabilir ve tekrarlanabilir sonuçlar vermek için tasarlanmıştır, ancak okuyucunun kodu kopyalamak yerine yazıp kademeli olarak iyileştirmesi teşvik edilir. Son bir uyarı; erken bölümlerde, dosyaları ve kodları daha sonra büyük ölçüde yeniden düzenlemekten kaçınmak için, uygulamanın son sürümüyle daha uyumlu olacak şekilde bazı kararlar alabiliriz.

Yıllar önce John Papa, Angular, Vue ve ReactJS'de aynı uygulamayı oluşturdu, ne yazık ki React versiyonu eski ve React topluluğu olarak meta değişikliklerinin ne sıklıkta yapıldığını biliyoruz. Yaklaşım, Vue ve Angular'dan gelen okuyuculara Cypress bileşen testleri yazarken 1:1 karşılaştırmalar yapma ve hatta bu çerçevelerden birinde bu alıştırmayı yeniden yapma olanağı sunar.

Teşekkürler

Bu içeriğin gözden geçirenlerine çok teşekkürler; , , ve sürekli olarak Epic React ofis saatleri boyunca soruları yanıtladığı için.

Bağlantılar ve Kaynaklar

Bu kitabın içeriğine ilham veren kaynaklar şunlardır:

Cypress Bileşen + e2e örnekleri bulunan GitHub depoları

Gelecek

Karşılaştırma ve zıtlıklar yapmak, yeni teknolojileri öğrenmenin harika bir yoludur. Bu tarzda yapılan çok fazla kaynak yoktur. Örneğin bu içerikte Kahramanlar, bileşenler arasında durumu iletmek için React özelliklerini kullanırken, benzerleri olan Kötüler ise React context API'sini kullanmaktadır.

Bu, günlük olarak güncellenen ve geliştirilen canlı bir kitaptır. Redux aynası, Redux Toolkit aynası, X-State aynası ekleyebiliriz, belki bir gün uygulamayı NextJs'e taşıyabiliriz. Gelecekte daha fazla bölüm görmeyi ve birlikte ön uç geliştirme hakkında daha fazla bilgi edinmeyi bekleyin.

Sorular, Yorumlar ve Geri Bildirimler

Kurulum

Talimatlar için, oluşturduğunuz depoyu https://github.com/muratkeremozcan/tour-of-heroes-react-cypress-ts olarak kabul edeceğiz, burada uygulamanın son sürümünü bulabilirsiniz. Örnekler yarn kullanır ve tercihe bağlı olarak npm kullanılabilir.

git clone https://github.com/muratkeremozcan/tour-of-heroes-react-cypress-ts
cd tour-of-heroes-react-cypress-ts
# eğer şirket vekil sunucusu üzerinde kurulum yapıyorsanız --registry değiştiricisini ekleyin
# aksi takdirde sadece yarn install
yarn install --registry https://registry.yarnpkg.com
# not: buradan itibaren --registry https://registry.yarnpkg.com
# şirket vekil sunucusu üzerinde çalışıyorsanız eklenmesi gerektiğini varsayın
# aksi takdirde depoyu şirketin özel GitHub alanında barındırmak zorunda kalacaksınız

Bir sağlamlık kontrolü için, komutları teker teker çalıştıracağız.

# paralel ünite, tip kontrol, düzeltme, biçimlendirme, derleme
yarn validate

# e2e, ct ve ünite testlerini çalıştırın

# Cypress bileşen test yürütücüsünü kontrol edin
yarn cy:open-ct

# Cypress e2e test yürütücüsünü kontrol edin (uygulamayı başlatır)
yarn cy:open-e2e

# Jest test yürütücüsünü yerel olarak izleme modunda başlatır
yarn test

&

Yukarıdaki tüm konular için başlatabilir veya bir açabilirsiniz.

Yeni bir depo oluşturmak için bu kullanın. Depo, React, TS, Cypress (e2e & ct), GHA ile CI mimarisi, Jest, ESLint, Prettier, Renovate, Husky, Lint-staged ve yeni bir projeye başlamadan önce sahip olmak istediğiniz çoğu şeyi içerecektir. Yeni depoyu klonlayın ve yükleyin.

CCTDD: Cypress Component Test Driven Design
uygulamanın Angular versiyonunu
Matthew Schrepel
Stefano Magni
Gleb Bahmutov
Kent C. Dodds
React Hooks in Action - John Larsen
Epic React - Kent C. Dodds
Learning TDD - Saleem Siddiqui
Tour of Heroes - John Papa
tour-of-heroes-react-cypress-ts - Bu kitapta CRA & Webpack kullanılarak inşa edilen son uygulama
aynı uygulama Vite ile
react-hooks-in-action-with-cypress - React Hooks in Action kitabında inşa edilen son uygulama
bookshelf - Epic React'tan son uygulama
365+ Cypress bileşen testi örneği
tartışma
CCTDD GitHub deposunda
sorun
şablonu