Blog

NodeJS ile API Testi Nasıl Yapılır?

API Testi Nedir, Ne İşe Yarar?

API testi, bir uygulama programlama arayüzünün (API) beklenen işlevselliğini, güvenliği, performansı ve güvenilirliğini doğrulamak için yapılan bir yazılım testi türüdür. Testler API üzerinde doğrudan veya entegrasyon testinin bir parçası olarak gerçekleştirilir.

API, iki yazılım programı arasındaki veri iletişimini sağlayan kodlardır. Bir uygulama genellikle birden fazla katmandan oluşur ve bunlardan biri de API katmanıdır. API katmanları, uygulamaların iş mantığına odaklanarak, isteklerin nasıl yapılacağı ve kullanılan veri formatları gibi konuları tanımlar.

Bir API testi genellikle bir veya daha fazla API uç noktasına istek göndererek yanıtları beklenen sonuçlarla karşılaştırarak gerçekleştirilir.

API testi, bir uygulamanın işlevselliğini, güvenliğini, performansını ve güvenilirliğini doğrulamanın yanı sıra, uygulamanın iş mantığını ve veri yanıtlarını analiz etmenin bir yoludur. API testi, yazılım geliştirme sürecinde önemli bir rol oynar. Özellikleri hataların erken tespitini başarılı bir şekilde sağlar. Bu sayede canlıya çıkacak uygulama daha az hata ile yayınlanır.

Mocha Nedir?

Mocha, Node.js ve tarayıcıda çalışan açık kaynaklı bir JavaScript test çerçevesidir. Hem senkron hem de asenkron kodları test etmek için tasarlanmıştır.

Mocha, geliştirme esnasında yakalanamayan istisnaları, ilgili test durumları altında ayırarak esnek ve doğru raporlama sağlamak için testleri sırayla çalıştırır. Mocha, belirli bir sırada çalışan testler oluşturur ve sonuçları ayrı ayrı anlaşılır bir şekilde kullanıcıya sunar.

Mocha, çoğu doğrulama kütüphanesiyle kullanılabilecek olsa da, genellikle Node.js ve tarayıcı için popüler bir doğrulama kütüphanesi olan Chai ile birlikte kullanılır.

Chai Nedir?

Chai genellikle Mocha ile birlikte kullanılan bir JavaScript doğrulama kütüphanesidir. Kütüphanenin amacı doğrulama işlemlerini daha az zaman ve çaba ile yazmayı sağlamaktır. HTTP istekleri sonucu geri dönen değerlerin doğru olup olmadığını kontrol eder.

Chai doğrulama kütüphanesi, Postman içerisinde de varsayılan olarak mevcuttur. Doğrulamaların en büyük özelliklerinden biri İngilizce ifadeler kullanarak karışık yazım kuralları olmadan kullanıcı dostu bir şekilde kod yazmaya olanak sağlamasıdır.

Mocha Test Hook’ları Nelerdir?

Mocha test hook'ları, test süreci sırasında belirli zamanlarda tetiklenen özel fonksiyonlardır. Bu fonksiyonlar, testleri yapılandırmaya, hazırlamaya veya sonuçlarını temizlemeye yardımcı olmak için kullanılırlar.

Mocha'da dört adet test hook'u bulunur:

  1. before() - Bu hook, tüm testlerin çalıştırılmadan önce bir kez çalıştırılır. Genellikle test ortamının kurulması ve başlatılması için kullanılır.
  2. after() - Bu hook, tüm testlerin çalıştırılmasından sonra bir kez çalıştırılır. Genellikle test ortamının temizlenmesi için kullanılır.
  3. beforeEach() - Bu hook, her test başlamadan önce bir kez çalıştırılır. Genellikle test verilerinin hazırlanması için kullanılır.
  4. afterEach() - Bu hook, her test bittiğinde bir kez çalıştırılır. Genellikle test verilerinin temizlenmesi için kullanılır.

Bu hook'lar, testlerin düzgün bir şekilde yapılandırılmasına, daha az kod tekrarına ve testlerin daha kolay yönetilmesine yardımcı olur.

Mocha Fonksiyonları Nelerdir?

  • describe(): Mocha'da describe() fonksiyonu testleri gruplamak için kullanılır. Test grubunu tanımlamak için describe() ve içerisine testleri içeren bir geri çağrı fonksiyonu olan it() yazılır. describe() çağrıları, genellikle test edilen kodun yapısını yansıtmak için iç içe geçmiş şekilde kullanılır. 
  • it(): Mocha'da it() fonksiyonu bireysel testleri yürütmek için kullanılır. Testin işlevini açıklayan  bir karakter dizesi ve doğrulama işlemlerini gerçekleştirmek için bir geri çağrı fonksiyonu kabul eder. It() çağrıları genellikle describe() blokları içinde iç içe geçmiş şekilde kullanılır.

Chai Assertion’ları Nelerdir?

should: Testlerde özellikle de API testlerinde, istediğimiz sonuçların doğruluğunu kontrol etmeyi sağlar. Chai should, testlerin daha okunaklı ve anlaşılır hale getirilmesine yardımcı olur.

agent: HTTP isteklerinde bazen bir isteğin çerezlerini saklamanız ve bunları sonraki istekle birlikte göndermeniz gerekebilir. Özellikle giriş işlemlerinde çerezler veya oturumlar kullanılarak uygulanan güvenlik yöntemlerinden sonra işlemlerin yetkili kullanıcılar tarafından yapılabildiği durumlarda kullanılması gerekir. Agent bu oturumu koruyarak işlemin devamlılığını sağlar. Bunun için, doğrudan .request() metodu yerine .request.agent() metodu kullanılır.

Part 2: NodeJS ile Test Ortamı Nasıl Oluşturulur?


Benzer
Bloglar

Mailiniz başarıyla gönderilmiştir en kısa sürede sizinle iletişime geçilecektir.

Mesajınız ulaştırılamadı! Lütfen daha sonra tekrar deneyin.