Coding Challenges Test Etmek İçin Mocha Kullanımı

Coding Challenges Test Etmek İçin Mocha Kullanımı

Kod yazma becerilerinizi test etmek için Mocha kullanmayı keşfedin! Bu pratik rehberimizde Mocha'nın nasıl kullanıldığını öğrenecek ve kendinizi kodlama zorluklarına hazırlayacaksınız Hemen okuyun!

Coding Challenges Test Etmek İçin Mocha Kullanımı

Mocha, Node.js uygulamaları ve Express.js web uygulamaları için test yazmak amacıyla kullanılan bir JavaScript test çerçevesidir. Geliştiriciler, Mocha'yı kullanarak çok sayıda test senaryosunu otomatik olarak oluşturabilir ve test sonuçlarını analiz edebilirler. Bu, kod yazarken karşılaşılabilecek olan çeşitli zorlukların önlenmesi için değerli bir araçtır.

Mocha'nın en büyük avantajı, test için özel olarak tasarlanmış dosyalar kullanarak işlevselliğin doğruluğunu kontrol etme fırsatı sunmasıdır. Geliştiriciler, bu özellik sayesinde yazdıkları kodun doğru olarak çalıştığından emin olabilirler. Mocha, açık kaynak kodlu olduğundan, daha fazla işlevsellik eklemek için kullanıcı katkısı da kabul edebilir.


Mocha Nedir?

Mocha, Node.js uygulamaları ve Express.js web uygulamaları için kullanılan bir JavaScript test çerçevesidir. Bu çerçeve, testlerin otomatik olarak çalıştırılmasını sağlar ve test sonuçlarını gösterir. Mocha, diğer test çerçevelerine göre daha esnek bir yapıya sahiptir. Örneğin, çeşitli raporlama araçları ve tarayıcı testlerini destekleyen eklentiler bulunmaktadır.


Yükleme

Mocha kullanmak için öncelikle kurulum yapmanız gerekmektedir. Kurulum için npm paketi kullanılabilir. Terminal üzerinden aşağıdaki komutu kullanarak mocha'yı kurabilirsiniz:

Kurulum için Terminalde Yapılması Gerekenler
1. npm install -g mocha
2. npm install --save-dev mocha

Bu komutlar sayesinde Mocha başarıyla kurulacaktır ve kullanıma hazır olacaktır.

npm install --save-dev mocha

Mocha kullanmak için, öncelikle npm paketi aracılığıyla Mocha'yı yüklemek gerekiyor. Kurulum için npm install --save-dev mocha komutunu kullanabilirsiniz. Bu komut otomatik olarak Mocha'yı projenize ekler ve gerekli bağımlılıkları yükler.

Mocha, geliştirme sürecinde testleri otomatik olarak çalıştırmak için özel bir test dosyası kullanır. Projeye bağımlılık olarak eklenen Mocha ile otomatik olarak test kütüphanesi de eklenir. Yani, Mocha'yı yükledikten sonra kullanmaya hazırsınız.

Mocha'yı yüklemek için öncelikle npm paketi kullanmanız gerekiyor. Bu paketi yüklemek için aşağıdaki komutu kullanabilirsiniz.

npm install --save-dev mocha

Bu komut, Mocha'yı proje bağımlılıklarına eklecektir. "--save-dev" parametresi ise Mocha'yı yalnızca geliştirme aşamasında kullanacağımızı belirtir.


Test Dosyaları

Mocha, testlerinizin otomatik olarak çalışması için özel test dosyaları kullanır. Test dosyaları, belirli bir test durumunu ifade eden it() fonksiyonlarından oluşur. Test durumları, özellikle Node.js veya Express.js uygulamalarındaki belirli fonksiyonlara bağlı olarak belirlenir.

Test dosyaları oluşturmak için .js uzantılı bir dosya oluşturmanız ve dosyanın adına "test" kelimesi eklemeniz yeterlidir. Test dosyası oluşturduktan sonra describe() fonksiyonunu kullanarak, test durumlarının bir grup içinde tanımlanması gereklidir. Test dosyaları, fonksiyonların parametreleri ve beklentileri belirten assert veya expect fonksiyonlarından oluşur.

Örnek Test Dosyası Kodları Açıklama
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.equal([1,2,3].indexOf(4), -1);
});
});
});
Bu örnek test dosyasında, Array sınıfının indexOf() fonksiyonuna yönelik bir test yer almaktadır. Testte fonksiyona bir parametre (4) verilir ve eğer fonksiyonun geri dönüş değeri -1 değilse test başarısız olur.

Test dosyalarınızı oluşturduktan sonra, Mocha komutlarını kullanarak test sonuçlarını görebilirsiniz. Tüm test dosyalarını otomatik olarak çalıştırmak için mocha komutunu kullanabilirsiniz. Ayrıca, mocha --watch komutunu kullanarak, dosya değişiklikleri oluşturulduğunda otomatik olarak testlerinizi çalıştırabilirsiniz.


Test Dosyası Oluşturma

testlerinizi yazacağınız JavaScript dosyasının adına test kelimesini eklemeniz yeterlidir. Örneğin, arrayTest.js isimli bir test dosyası oluşturabilirsiniz. Testlerinizi describe() ve it() fonksiyonları içinde yazabilirsiniz. describe() fonksiyonu, testlerinizi gruplandırmanızı ve düzenlemenizi sağlar. it() fonksiyonu ise, belirlediğiniz fonksiyon için bir test yazdığınız yerdir. Bu fonksiyonlarda kullanacağınız assert veya expect fonksiyonları, testlerinizi oluşturmanıza yardımcı olur. Test fonksiyonları ve verileri yazdıktan sonra, dosyanızı kaydedip Mocha ile çalıştırabilirsiniz.

.js

JavaScript kodlama dilinde kullanılan .js, web uygulamaları, tarayıcı eklentileri ve masaüstü uygulamaları gibi birçok farklı alanda kullanılan bir dosya uzantısıdır. .js dosyaları, web sayfalarında kullanılan etkileşimli elementlerde, dinamik içeriklerde, animasyonlarda, oyunlarda ve form işlemlerinde kullanılır. Ayrıca, Node.js uygulamaları için de önemli bir rol oynar. .js dosyaları, HTML sayfalarına dahil edilerek kullanılır. JavaScript kodlaması, bir programlama dilidir ve web uygulamalarının temelini oluşturur. JavaScript kodu, HTML sayfasına eklenerek çalıştırılır. .js dosyalarında yazılan kodlar, web sayfası yüklendikten sonra da kullanıcı etkileşimleri sonrası çalıştırılır.

uzantılı bir dosya oluşturmanız ve dosyanın adına

Test dosyası oluşturmak için, projenizin bulunduğu dizinde .js uzantılı bir dosya oluşturmanız ve dosyanın adına test kelimesi eklemeniz gerekmektedir. Test dosyasının adı, aynı zamanda test yapılacak olan JavaScript dosyasının adıyla eşleşmelidir.

Örneğin, proje dizininizde index.js adında bir dosya varsa, test dosyanızın adı index.test.js olmalıdır. Bu şekilde Mocha, test dosyalarınızı otomatik olarak bulabilir ve çalıştırabilir.

test

Testler, bir uygulamanın doğru şekilde çalıştığını garantilemek için yazılan kod parçalarıdır. Bir uygulamada bir hata yapılması durumunda, testler bu hataları tespit etmek ve düzeltmek için kullanılır. Testler ayrıca gelecekte yapılan değişikliklerin mevcut işlevselliği etkileyip etkilemediğini kontrol etmek için de kullanılır.

Testler, Mocha test çerçevesi altında yazılabilir. Mocha, Node.js ve Express.js uygulamaları için test yazmanın kolay bir yoludur. assert veya expect fonksiyonları kullanarak testler yazabilir ve komut satırından kolayca çalıştırabilirsiniz. Mocha’nın sunduğu komutlarla test dosyalarını tek tek veya otomatik olarak çalıştırabilirsiniz.

Testlerin oluşturulması ve Mocha kullanımı, uygulamanın doğru şekilde çalışmasını garanti eder. Programlamada testlerin mevcudiyeti, uygulamanın kalitesini ve güvenilirliğini artırır. Bu nedenle, testlerin yazılması ihmal edilmemelidir.

kelimesi eklemeniz yeterlidir.

Test dosyası oluşturmak oldukça basittir. Sadece, .jsuzantılı bir dosya belirleyin ve dosya adının başına testkelimesini ekleyin. Örneğin, bir test dosyası için test.jsdosya adını kullanabilirsiniz. Mocha, test dosyalarınızı otomatik olarak bulur ve testleri çalıştırmak için kullanabilirsiniz.


Test Dosyasının İçeriği

assert veya expect fonksiyonlarından oluşur. Bu fonksiyonlar, test edilen fonksiyonların çıktılarını ve özelliklerini kontrol etmek için kullanılır. Örneğin, bir fonksiyonun doğru sayıyı döndürüp döndürmediğini kontrol etmek için assert.equal() fonksiyonu kullanılabilir. assert veya expect fonksiyonları, testlerin doğru çalışıp çalışmadığını belirlemeye yardımcı olur ve hata ayıklama sürecini kolaylaştırır. Test dosyasının içeriği, olası senaryoların kapsamlı bir şekilde incelenmesiyle oluşturulmalı ve tüm olası hatalar ortaya çıkarılmalıdır. Böylece, uygulamanın tam bir şekilde test edilmesi ve sorunsuz bir şekilde çalışması sağlanabilir.

assert

Assert Fonksiyonu

Assert fonksiyonu, testlerde bir beklentiye karşılık olarak bir şey doğruysa hiçbir şey yapmaz, ancak beklenti yanlışsa hata mesajı verir ve test arızalanır.

Örneğin, aşağıdaki kod, 2 + 2'nin 5 olduğunu varsayarsak bir hata mesajı döndürecektir:

Kod Çıktı
assert.equal(2+2, 5); AssertionError: 4 == 5

Assert fonksiyonu, birkaç farklı varyasyonu ile birlikte gelir, bunların bazıları:

  • assert.ok: bir şartın doğru olduğunu onaylar
  • assert.equal: iki değerin eşit olduğunu onaylar
  • assert.deepEqual: iki objenin özelliklerinin eşit olduğunu onaylar

Bu fonksiyonlar, testleri kolay bir şekilde yazmanızı sağlar ve kodunuzun doğru çalıştığından emin olabilirsiniz.

veya

Bir test dosyasında kullanabileceğiniz iki fonksiyon, assert veya expect fonksiyonlarıdır. Her iki fonksiyon da bir fonksiyonun parametreleri ve beklentilerini belirlemenize olanak sağlar.

Örneğin, assert fonksiyonu, bir dizi gibi basit bir veri yapısı üzerinde bir test yapmak için kullanılabilir. Aşağıdaki kodda, assert.equal fonksiyonu, bir dizideki bir öğenin belirtilen değere sahip olup olmadığını kontrol eder:

Kod Açıklama
assert.equal([1,2,3].indexOf(3), 2); Bu test, 3 değerinin [1,2,3] dizisinde bulunup bulunmadığını kontrol eder. 3'ün öğe dizisinde 2. indeks sırasında olduğu doğrulanır.

Benzer şekilde, expect fonksiyonu, daha gelişmiş testler için kullanılabilir.

Örneğin, aşağıdaki kodda, expect fonksiyonu, bir belirli koşullara sahip kullanıcıların bir dizi içinde bulunduğunu kontrol eder:

Kod Açıklama
expect(users).to.have.property('username', 'mocha_test_user'); Bu test, "users" adlı bir veri yapısında "username" özelliğinin 'mocha_test_user' olduğunu doğrular.

Bu fonksiyonlar, test dosyalarında kullanılırken, testlerin daha kolay okunmasını ve anlaşılmasını sağlar. 

expect

Expect Fonksiyonu ile Test Yazma

Expect fonksiyonu, Mocha'da test yazarken kullanabileceğimiz bir fonksiyondur. Assert fonksiyonuna benzer şekilde, testlerimizde beklentilerimizi belirlememize yardımcı olur. Assert fonksiyonu, testlerimizde sadece bir değerin doğruluğunu kontrol edebilirken, expect fonksiyonu, daha çeşitli testler yapmamıza olanak tanır.

Expect fonksiyonunun birkaç temel kullanımı şunlardır:

Kod Açıklama
expect(foo).to.be.a('string'); foo değişkeninin bir string değerine sahip olup olmadığını kontrol eder
expect(bar).to.equal(42); bar değişkeninin 42'ye eşit olup olmadığını kontrol eder
expect(baz).to.have.lengthOf(4); baz değişkeninin uzunluğunun 4 olduğunu kontrol eder (sadece array ve stringler için geçerli)

Expect fonksiyonu, assert fonksiyonuna göre daha kolay okunabilir test ifadeleri sağlar. Bu nedenle, test yazarken expect fonksiyonunun kullanımı tercih edilebilir.

fonksiyonlarından oluşur.

Test dosyanız, çeşitli fonksiyonlarla ve parametrelerle çalıştırılan testleri içermelidir. Bu fonksiyonlar arasında assert veya expect fonksiyonları da yer alabilir. Bu fonksiyonlar genellikle belirli bir işlevin çıktısının beklenen değerle eşleşip eşleşmediğini kontrol eder.

assert.equal() gibi assert fonksiyonları, fonksiyonun beklenen çıktısı ile gerçekleştirilen çıktıyı karşılaştırarak doğrulama yapar. expect fonksiyonları da benzer bir doğrulama işlemi için kullanılabilir.

Test dosyanız, bir veya daha fazla describe() fonksiyonları ve bunların içinde birden fazla it() fonksiyonları içerebilir. describe fonksiyonları, belirli bir kod bloğunu veya sınıfı test etmek için kullanılırken, it fonksiyonları belirli bir işlevi test etmek için kullanılır. Test dosyanızda ayrıca before() ve after() fonksiyonları da kullanabilirsiniz. Bu fonksiyonlar, test sürecinin başında ve sonunda çalıştırılacak kodlar için kullanılır.


Örnek Bir Test Dosyası

Mocha, Node.js ve Express.js uygulamaları için test yazarken kullanabileceğiniz bir JavaScript test çerçevesi olarak öne çıkıyor. Mocha ile testlerinizi otomatik olarak çalıştırabilir ve sonuçlarını görüntüleyebilirsiniz. Test dosyaları ise, test edilecek özellik veya fonksiyonların belirtilip, bu özelliklerin beklenen sonuçlarına göre assert veya expect fonksiyonları kullanılarak yazılan dosyalardır.

Örnek bir test dosyası için aşağıdaki kodlar kullanılabilir:

Kod Açıklama
const assert = require('assert'); Assert kütüphanesi kullanarak testler yapmak için assert kütüphanesi içeri aktarılır.
describe('Array', function() { Test edilecek özellik veya fonksiyon tanımlanır. Bu örnekte array tanımlı bir fonksiyon test edilecek.
describe('#indexOf()', function() { Fonksiyonun ismi belirtilir ve test edilecek fonksiyonun içeriği buraya yazılır.
it('should return -1 when the value is not present', function() { Fonksiyonun beklentisi belirtilir. Bu örnekte, eğer belirtilen değer bulunmazsa -1 döneceği belirtilir.
assert.equal([1,2,3].indexOf(4), -1); Fonksiyonun testi burada yapılır ve geri dönüş değeri assert.equal fonksiyonu ile kontrol edilir.

Bu örnek dosya, fonksiyonun beklenen değerine göre başarılı olup olmadığını kontrol eder. Test dosyaları genellikle bu şekilde belirli bir özellik için yazılır ve tüm uygulama için geniş bir test davranışı oluşturabilir. Bu şekilde uygulamanızın doğru çalışmasını sağlayabilirsiniz.

const assert

const assert = require('assert'); kodu, Mocha tarafından kullanılan ve testlerin doğruluğunu kontrol etmek için kullanılan bir fonksiyonudur. Bu fonksiyon, test sonuçları hakkında bilgi veren bir nesne döndürür.

Bu fonksiyon, beklenen ve gerçek değerler arasındaki farkları belirlemek ve testleri geçtiğinden emin olmak için kullanılabilir. Test sonuçları doğruysa, assert fonksiyonu hiçbir şey döndürmez ancak test başarısız olursa hata mesajı döndürür.

Bu fonksiyon, JavaScript kodunda hata bulmak için oldukça yararlıdır. Testlerinizin doğruluğunu kontrol etmek için assert ve benzeri fonksiyonları kullanmanız önerilir. Bunlar, kodunuzun işlevselliğini ve çıktısını test etmek için kullanılan önemli araçlardan biridir.

describe('Array', function() {

'describe('Array', function() {' ifadesi, Mocha test dosyaları içerisinde bulunan bir fonksiyondur. Bu fonksiyon, bir diziyle ilgili birkaç test senaryosu içermektedir. Bu sayede, test dosyasının neyle ilgili olduğunu daha açık bir şekilde belirtmek mümkündür.

Bu fonksiyon,

describe() Mocha'nın özelleştirilmiş bir fonksiyonudur.
Array Testlerin neyle ilgili olduğunu belirten bir tanımlayıcıdır. Bu tanımlayıcı, test senaryolarının daha açık bir şekilde belirtilmesine yardımcı olur.
function() Bir test grubunun tüm testleri tamamlandığında çalışacak işlevi belirtmek için kullanılır.
şeklinde kullanılabilir. Bu fonksiyonu kullanarak, bir diziyle ilgili tüm test senaryolarını daha düzenli bir şekilde yazabilir ve başarılı bir şekilde test edebilirsiniz.

describe('#indexOf()', function() {

describe('#indexOf()', function() {

Bu Mocha test kod bloğu, bir dizi içinde belirtilen bir öğenin hangi konumda olduğunu belirleyen indexOf() fonksiyonu içeren bir test oluşturur.

Test içeriği, fonksiyonun doğru şekilde çalışıp çalışmadığını belirlemek için kullanılan assert veya expectfonksiyonlarını içerir. Bu test aynı zamanda -1 değerinin, aranan öğenin dizide bulunmadığı durumlarda geri döndüğünü kontrol eder.

Parametreler Açıklama
indexOf() Bir dizinin içinde belirtilen bir öğenin hangi konumda olduğunu belirleyen bir fonksiyondur.
-1 Aranan öğe dizide yoksa geri dönen değerdir.

Bu test, test dosyalarındaki fonksiyonların ve özelliklerinin nasıl kullanılabileceğine dair bir örnek olarak düşünülebilir.

it('should return -1 when the value is not present', function() {

it('should return -1 when the value is not present', function() {

Bu kod kalıbı, bir dizide aranan bir öğenin varlığını arar ve öğe dizide yoksa fonksiyonun -1 döndürmesini bekler. Bu, özellikle verilerin doğru şekilde saklandığından emin olmak için önemlidir.

Bir örnekle açıklamak gerekirse, [1,2,3] dizisinde yer almayan bir öğe için .indexOf() fonksiyonundan -1 değeri döndürmesi beklenir.

Bu test, uygulamanızda olası bir arama hatasını tespit etmek için kullanılabilir. Mocha, bu tür testleri birkaç satır kod yazarak kolaylaştırır ve uygulamanızın kesintisiz bir şekilde çalışmasını sağlar.

assert.equal([1,2,3].indexOf(4), -1);

Bu kod satırı, yukarıda da belirtildiği gibi, Mocha testlerinin yazımında kullanılan assert fonksiyonunu kullanmaktadır. Bu örnek kod satırı, bir dizi içerisinde bulunmayan bir elemanın index değerinin -1 olarak dönmesi gerektiğini test etmektedir.

Bu örnekteki test, bir kabul edilen davranışı kontrol etmek için yazılan basit bir testtir. Örneklemek istediğimiz şey, kodun işlevsel olup olmadığıdır. Bu tür kabul testleri, kodun herhangi bir bölümünde bir değişiklik yapılmadığı sürece çalışmalıdır.

Bu test, yazılan bir fonksiyon veya komut satırı test edilirken kullanılabilir. Sonuçlar, -1 döndürmesi gereken kodlarda beklendiği gibi olup olmadığını kontrol etmek için kullanılabilir.

});

The }); function is used to close the assertions and end the test. This function is used within each it() function. Once the assertions are completed, this function is called to signal the end of the test. However, it is important to note that if an error occurs within this function, the test will fail.

});

Bu kod bloğu, bir test bloğunun sonunu ifade eder. Yukarıdaki örnekte, Array testi için describe bloğu kullanılmış ve test indexOf() işlevi için yazılmıştır. it bloğu, testin spesifikasyonlarını ifade eder ve sonunda });ile sonlanır.

Testler yazdığınızda, her bir test için ayrı ayrı describe ve it blokları yazmanız gerekir. Bu, testlerin okunması ve takibi açısından önemlidir ve her bir testin spesifikasyonlarını açıkça ifade etmenizi sağlar.

});

Bir test dosyası oluşturduktan sonra, fonksiyonlarınızı test etmek için testleri tanımlamanız gerekiyor.

Mocha, tanımlamanız gereken testleri tanımlamanıza yardımcı olan özel bir dizi fonksiyon sağlar. En yaygın olanı describe fonksiyonudur ve bir önceki örnekte kullanılmıştır. Bu fonksiyon, test etmek istediğiniz nesne veya kod bloklarını belirlemek için kullanılır. it fonksiyonu ise, testlerin kendisini tanımlamak için kullanılan bir fonksiyondur ve beklentilerinizi belirtmenize yardımcı olur. Bir it fonksiyonu, birden fazla assert veya expect fonksiyonu içerebilir.

Fonksiyon Açıklama
describe() Bir test durumunu tanımlar.
it() Bir testi tanımlar.
before() Tüm testlerden önce çalışacak bir fonksiyon tanımlar.
after() Tüm testlerden sonra çalışacak bir fonksiyon tanımlar.
beforeEach() Her testten önce çalışacak bir fonksiyon tanımlar.
afterEach() Her testten sonra çalışacak bir fonksiyon tanımlar.

Her test dosyasında, birbirine bağlı olan describe ve it fonksiyonlarından oluşan bir dizi bulunmalıdır. Örnek bir test dosyasındaki describe fonksiyonu, bir dizi it fonksiyonunun üstünde bulunur. Bu testler, tüm ayrıntıları belirleyerek kodu test ederler.

Test sonuçları, test dosyasını çalıştırdıktan sonra komut satırına bastırılır. Hatalı testler için hata mesajları gösterilirken, geçerli testler için başarılı mesajlar gösterilir.

Özetle, Mocha, test dosyaları oluşturmak için basit ve kullanışlı bir yapı sağlar. Kodu test etmek için assert veya expect fonksiyonlarını kullanarak testleri tanımlayabilirsiniz. Testlerinizi komut satırından çalıştırabilir ve sonuçlarını görüntüleyebilirsiniz.

});


Mocha Komutları

Mocha komutları, test dosyalarını çalıştırmanızı ve test sonuçlarını görüntülemenizi sağlar. Test sonuçları, tüm testlerin başarılı olup olmadığını ve hataların nerede olduğunu gösterir.

Komut Açıklama
mocha Tüm test dosyalarını otomatik olarak çalıştırır ve test sonuçlarını görüntüler.
mocha dosyaadi Belirtilen test dosyasını çalıştırır.
mocha --watch Dosya değişiklikleri oluşturulduğunda testleri otomatik olarak çalıştırır.

Mocha Komutları Örnekleri:

  • Tüm test dosyalarını çalıştırmak için: mocha
  • Sadece belirli bir test dosyasını çalıştırmak için: mocha test/dosyaadi.js
  • Dosyalar değiştiğinde otomatik olarak testleri çalıştırmak için: mocha --watch

Mocha komutlarını kullanarak testleri çalıştırabilir ve hata ayıklama sürecinde kolayca hataları belirleyebilirsiniz. Bu komutlar, yazdığınız testlerin doğru çalıştığını kontrol etmenize yardımcı olacaktır.


mocha

Mocha komutu, tüm test dosyalarını otomatik olarak çalıştırır ve sonuçlarını gösterir. Bu komutu kullanmak için terminalde proje dizinine gitmeniz ve aşağıdaki komutu yazmanız yeterlidir:

mocha

Bu komutu kullanarak herhangi bir test dosyasını çalıştırmak için öncelikle dosya adını belirlemelisiniz. Örneğin:

mocha test-ornek.js

Böylece sadece test-ornek.js dosyasındaki testler çalıştırılacaktır.

Mocha'nın başka bir özelliği, dosyalarda değişiklik yapıldığında testleri otomatik olarak çalıştırabilmesidir. Bu özelliği kullanmak için aşağıdaki komutu terminalde çalıştırmanız gerekmektedir:

mocha --watch

Bu komutu kullanarak test dosyalarındaki değişiklikler yapıldığında testler otomatik olarak yeniden çalıştırılır. Bu sayede test sonuçlarını anlık olarak takip edebilir ve hataları düzeltebilirsiniz.


mocha

Mocha, Node.js ve Express.js uygulamalarında testlerin otomatik olarak çalıştırılmasını sağlayan bir test çerçevesidir. Mocha, testlerinizi otomatik olarak çalıştıracak özel test dosyaları kullanır ve bu dosyaları çalıştırmak için bir dizi komut sunar.

Mocha komutlarının en temel kullanımı "mocha" komutudur. Bu komut, tüm test dosyalarını otomatik olarak çalıştırır ve sonuçları gösterir. Belirli bir test dosyasını çalıştırmak isterseniz, "mocha dosyaadi" komutunu kullanabilirsiniz.

Ayrıca, "mocha --watch" komutunu kullanarak da testleri otomatik olarak çalıştırabilirsiniz. Bu komut dosya değişiklikleri oluşturulduğunda testleri otomatik olarak çalıştırır.

Mocha, geliştirme sürecinde oldukça kullanışlı bir araçtır. Testlerinizi kolayca yazabilir ve komut satırından otomatik olarak çalıştırabilirsiniz. Bu nedenle, Mocha özellikle büyük ve karmaşık uygulamalar için test yazarken çok yararlı olabilir.

Sonuç olarak, Mocha kullanarak test yazmak, geliştiriciler için büyük bir kolaylık sağlar ve testlerin otomatik olarak çalıştırılmasını kolaylaştırır. Bu nedenle, Node.js ve Express.js uygulamaları için test yazarken Mocha'yi kullanmanızı öneririz.

dosyaadi

"dosyaadi" Mocha kullandığımız test dosyasının adıdır. Bu dosya, Node.js uygulamaları veya Express.js web uygulamaları için yazılan testleri barındıran bir JavaScript dosyasıdır. Mocha, test dosyasını otomatik olarak tanır ve çalıştırır. Test dosyası, test edilecek fonksiyonları ve beklentileri belirten assert veya expect fonksiyonlarından oluşur. Mocha, belirtilen test dosyasını çalıştırmak için komut satırında kullanılır, böylece test sonuçlarını hızlıca görebilirsiniz.


mocha dosyaadi

Mocha, özel olarak oluşturduğunuz test dosyalarını çalıştırmak için belirli bir dosya adı kullanabilir. Test dosyasının adı yazılırken ".js" uzantısı eklenmemelidir. Bu şekilde belirlediğiniz dosya adını kullanarak Mocha'yı belirli bir test dosyasını çalıştırmak için kullanabilirsiniz. Örnek kullanım mocha testFile.js şeklinde olacaktır.

Ayrıca, dosya adı belirtilmeden mocha komutu kullanıldığında Mocha, test dosyalarını otomatik olarak tüm proje klasöründe arar ve her birini takip eder. Bu şekilde tüm testleri kolayca çalıştırabilirsiniz.


mocha --watch

mocha --watch komutu, test dosyalarında herhangi bir değişiklik yapıldığında otomatik olarak testleri çalıştırır. Bu özellik sayesinde, testlerinizde hızlı bir şekilde değişiklikler yapabilirsiniz. Örneğin, test dosyanızda bir işlevi güncellediğinizde veya kaldırdığınızda, bu işlevin testlerinin artık çalışmaması gerekir. Bu nedenle, mocha --watch komutu test sürecinizi hızlandırmaya ve kolaylaştırmaya yardımcı olabilir.

Ayrıca mocha --watch komutu, tüm test dosyalarının çalıştırılmasına kıyasla daha hızlı çalışır ve yalnızca değişen testleri yeniden çalıştırarak zaman kazandırır. Bu, büyük bir test setine sahip olan projeler için özellikle yararlıdır.

Bir diğer yararlı özellik ise mocha --watch komut ile düzenlenebilen bir test dosyası da otomatik olarak test edilebilir. Böylece, testleri yazarken ve düzenlerken test sürecini basitleştirmiş olursunuz.


Summary

Mocha, Node.js ve Express.js uygulamaları için test yazmanın kolay bir yoludur. assert veya expect fonksiyonları kullanarak testler yazılabilir ve komut satırından kolayca çalıştırılabilir. Test dosyaları kurulumun ardından kolayca oluşturulabilir ve içerikleri belirtilen fonksiyonların parametre ve beklentileriyle birlikte yazılır. Mocha komutları kullanılarak test dosyalarının çalıştırılması sağlanır ve test sonuçları görüntülenebilir.

assert

Assert Fonksiyonu

Assert fonksiyonu, JavaScript kodunun beklenen çıktıyı verip vermediğini kontrol etmek için kullanılır. Test dosyalarında kullanıldığında, fonksiyonlarının parametreleri ve beklentilerini belirler. Eğer beklediğimiz sonuç doğru değilse, test otomatik olarak başarısız olarak işaretlenir.

Assert fonksiyonu, Mocha test çerçevesinin standart bir parçasıdır ve require('assert') kullanılarak test dosyasına eklenebilir. Bununla birlikte, benzer ama daha esnek bir alternatif olarak diğer test çerçeveleri için de kullanılabilir.

Assert fonksiyonları için örnek kullanım:

Kod Beklenen Çıktı Açıklama
assert.equal(3, '3') AssertionError: 3 == '3' Sonuçlar eşit değil, dolayısıyla test başarısız olacaktır.
assert.deepEqual({a:1}, {a:'1'}) AssertionError: { a: 1 } deepEqual { a: '1' } Sonuçlar derinlemesine eşleşmiyor, dolayısıyla test başarısız olacaktır.
assert.ok(true) undefined Sonuç doğru olduğu için, hiçbir hata oluşmaz.

Assert fonksiyonları, test yazmayı daha kolay ve test sonuçlarının daha anlaşılır olmasını sağlar. Bununla birlikte, testlerinizi yazarken çok sayıda assert fonksiyonu kullanırsanız, test dosyalarınız da hantal ve karmaşık hale gelebilir. Bu nedenle, assert fonksiyonlarını mümkün olduğunca az kullanmak önemlidir.

veya

'assert' veya 'expect' fonksiyonları, Mocha kullanarak yazdığınız testlerin temel taşıdır. Bu fonksiyonlar, test senaryolarını tanımlar ve fonksiyonların beklentilerini belirler. Bu sayede test senaryosunun başarılı olup olmadığını kontrol edebilirsiniz. 'assert' fonksiyonu, bir ifadeye karşılık beklenen sonucu karşılaştırır ve eşleşmezlik durumunda hata fırlatır. 'expect' fonksiyonu ise aynı karşılaştırmayı yapar ancak hata fırlatmaz. Test senaryosunun başarılı olması için, fonksiyonların beklentileri doğru bir şekilde belirtilmeli ve doğru sonuçlar döndürmeli.

expect

Expect fonksiyonu, testlerinizi yazmanın daha okunaklı hale getirmek için kullanılır. Bu fonksiyon, test sonuçlarını daha anlaşılır hale getirir ve beklentileri girdi olarak kullanmanıza izin verir. Aşağıdaki örnek, expect fonksiyonunu kullanarak bir testin nasıl yazılacağına dair bir örnektir:

const expect = require('chai').expect;describe('Sample Test', function () {  it('should return true', function () {    expect(true).to.be.true;  });});

Burada, test verileri arasında bir beklenti kullanarak test daha okunaklı hale getirilmiştir. Testin sonucu, beklentimiz doğru olduğunda başarılıdır.

Expect fonksiyonu, chai kütüphanesi ile birlikte kullanılabilir. Bu kütüphane, ek beklentiler eklemek için kullanılabilir. Chai kütüphanesi, assert gibi başka bir beklenti fonksiyonu sağlar, ancak expect fonksiyonu daha okunaklı ve daha kolay anlaşılabilirdir.

Aşağıdaki örnekte, chai kütüphanesi kullanılarak iki sayının eşit olup olmadığı kontrol edilir:

const chai = require('chai');const expect = chai.expect;describe('Sample Test', function () {  it('should check if two numbers are equal', function () {    const num1 = 10;    const num2 = 10;    expect(num1).to.equal(num2);  });});

Burada, eşitlik kontrolü için expect fonksiyonu kullanılmıştır. Eğer num1 ve num2 değişkenleri eşit değerlere sahipse, test başarılı sayılır.

Expect fonksiyonu, testlerinizi daha okunaklı hale getirmek için mükemmel bir seçenektir. Chai kütüphanesi ile birlikte kullanıldığında, daha iyi ve daha anlaşılır testler yazabilirsiniz.

fonksiyonları kullanarak testler yazabilir ve komut satırından kolayca çalıştırabilirsiniz.

Mocha, Node.js ve Express.js uygulamaları için test yazmanın kolay bir yoludur. assert veya expect fonksiyonları kullanarak testler yazabilirsiniz. Oluşturduğunuz test dosyalarını kolaylıkla komut satırından çalıştırabilirsiniz. Mocha'nın kullanımı ve özellikleri ile ilgili daha fazla bilgi edinmek isterseniz, resmi web sitesini ziyaret edebilirsiniz. Ayrıca, Mocha'nın hızlı ve esnek yapısı sayesinde çeşitli senaryolara uygun testler yazabilirsiniz.