lilydocs
HTTP APIWebSocketConsumer
Geliştirme4 dk okuma

Test etme

Public API, gerçek HTTP sonuçları ve yaşam döngüsü üzerinden uygulamanızı doğrulayın.

Bir action’ın Rust dönüşünü test etmek tek başına HTTP sözleşmesini doğrulamaz. Status, header, gövde ve kapanış davranışını da kontrol edin.

Küçük bir doğrulama akışı#

İlk uygulamayı çalıştırın. GET /api/hello için 200, JSON content type ve beklenen gövdeyi denetleyin. Ardından olmayan yol için 404, desteklenmeyen method için 405/Allow ve HEAD için gövdesiz yanıtı kontrol edin.

İlk uygulama çalışırken
curl -i http://127.0.0.1:8080/api/hello
curl -I http://127.0.0.1:8080/api/hello
curl -i -X POST http://127.0.0.1:8080/api/hello
curl -i http://127.0.0.1:8080/olmayan-yol

Otomatik integration test’te yalnız sabit bir sleep ile readiness varsaymayın. Sunucunun hazır olmasını sınırlandırılmış biçimde bekleyin, dış cancellation veya close ile kapatıp kapanış sonucunu await edin.

DI ve politika testleri#

Kayıtlı Singleton için seed_singleton kontrollü başlangıç değeri sağlayabilir. Scope paylaşımı, interface çözümü ve yanlış lifetime hatalarını test edin. Seed runtime’da yeni servis kaydı eklemez.

Authentication/authorization için geçerli, eksik, bozuk ve yetkisiz credential durumlarını ayrı doğrulayın. Rate limiting’de gerçek kota aşımı 429, store hatası 503 olmalıdır. Cookie ve CSRF’yi browser’ın credential davranışını hesaba katarak birlikte test edin.

Framework testlerini çalıştırma#

Framework testlerini çalıştırmak için public repository checkout’unun kökünde, bu rehberin kaynak commit’ini ve Rust 1.96.1 kullanın. Bu checkout uygulama kurulumunun ön koşulu değildir:

Terminal
cargo test -p lily_http_api \
  --test typed_action_executor \
  --test typed_service_executor \
  --test typed_response_modes \
  --test typed_multipart_executor \
  --test openapi_service_publication \
  --test openapi_schema_security \
  --test execution_cancellation

Yerel bağımlılık cache’i tam ise --offline eklenebilir. Bu testler loopback socket açabilen bir ortam ister. Internal Handler/RouteTable kurucularını uygulamanızın public başlangıç API’si gibi kullanmayın.

Entegrasyon feature’larını ayrı profillerde doğrulayın. Örneğin postgresql ve postgresql-factory aynı build’de açılmaz. --all-features veya bütün workspace’in birleştirdiği feature’larla test etmek tek bir uygulama profilinin kanıtı değildir. Framework’ün sürümlü facade qualification rehberi bağımsız consumer ve feature profillerini açıklar.

Rehberin doğrulama kapsamı#

Yayın sonrası örnek doğrulaması: Bu facade güncellemesinde 15 indirilebilir HTTP Rust örneği, Rust 1.96.1 ile ayrı Cargo projelerinde derlendi. Lily bağımlılıkları yalnız crates.io’dan 0.1.0 olarak çözüldü; yerel framework checkout’u veya dependency patch’i kullanılmadı. PostgreSQL, MongoDB ve Redis örnekleri bu kapsamda derleme kontrolünden geçti; canlı veri işlemleri çalıştırılmadı.

Üç yerel HTTP testi de geçti: ilk uygulamada GET /api/hello için 200, DI örneğinde GET /greetings ile Singleton ve Scoped servis çözümü, typed request örneğinde POST /users için 201, Location: /users/42 ve beklenen JSON. Testler host’u cancellation ile kapatıp kapanış sonucunu bekledi. Action yolu / olduğunda birleşen controller yoluna son slash eklenmediği de bu kontrollerde doğrulandı.

Dokümantasyon repository’sindeki docs/lilyrs-ornek-dogrulama.json, örnek hash’lerini, dependency profillerini ve sonuçları kaydeder. Aynı repository’de örnek bir derleme ile üç HTTP davranış kontrolünü yeniden çalıştırabilirsiniz:

Terminal
python3 scripts/check-rust-examples.py --profile http-first-app
python3 scripts/check-rust-examples.py --mode smoke --profile http-first-app --profile http-di --profile http-requests

Tarihsel doğrulama — 14 Eylül 2026: fabed7e8b9ad140528e1254e91c023a7059b927d checkout’u üzerinde 15 tam Rust örneği derlendi ve yukarıdaki hedeflerde 12 HTTP integration testi geçti. Global middleware tekrar davranışı ayrıca public API probe’u ile çalıştırıldı. Bunlar facade geçişinden önceki sonuçlardır; yayımlanan lilyrs ile güncellenmiş örneklerin yeniden çalıştırıldığı anlamına gelmez.

Framework yayın doğrulaması — 18 Eylül 2026: Kaynak repository’nin release qualification raporu paket arşivleri, facade profilleri, bileşen testleri ve canlı uygulama kontrollerinin kendi kapsamını kaydeder. Bu rapor framework ekibinin yayın öncesi çalışmasıdır; sitedeki bütün kod parçalarının aynı testlerde yer aldığı veya o raporda tekrar test edildiği varsayılmaz.

Sitenin ilk incelemesinde canlı PostgreSQL, MongoDB ve Redis ile veri mutasyonu/transaction testi yapılmadı. O incelemedeki entegrasyon doğrulaması API/derive incelemesi ve derlemeyle sınırlıydı. Framework raporundaki canlı testler, bu öğretim örnekleri için canlı test sonucu sayılmaz. Kaynak sürümü ve örnek sınırları referansta bulunur.

Bu sayfanın kaynakları v0.1.0

Anlatım, incelenen framework commit’ine dayanır.

HIZLI BAŞLANGIÇ
Dokümantasyon
Kaynak kod