Doğru istisnaları atmak için işlevleri test etme
throwİstisnaları test etmek için Chai tarafından sağlanan iddiayı kullanabiliriz . Bu iddia, atılması gereken istisna türünü ve doğrulamak istediğimiz ek ayrıntıları belirtmemize izin verir. Bu iddiayı test senaryolarımıza dahil ederek, fonksiyonlarımızın beklendiği gibi davranmasını ve hata koşullarını uygun şekilde ele almasını sağlayabiliriz.
İki sayıyı bölen bir fonksiyonumuzun olduğu bir örneği ele alalım. İşlevin sıfıra bölünürken bir istisna oluşturmasını sağlamak istiyoruz. throwFonksiyonun DivideByZeroErrorsıfıra bölerken doğru bir şekilde a atıp atmadığını kontrol etmek için Chai'nin iddiasını kullanarak bir test durumu yazabiliriz .
const { expect } = require('chai');
function divide(a, b) {
if (b === 0) {
throw new Error('DivideByZeroError');
}
return a / b;
}
describe('divide', () => {
it('should throw DivideByZeroError when dividing by zero', () => {
expect(() => divide(10, 0)).to.throw('DivideByZeroError');
});
it('should return the correct result when dividing two numbers', () => {
expect(divide(10, 5)).to.equal(2);
});
});
Yukarıdaki örnekte, işlevin sıfıra bölerken a fırlattığını to.throwdoğrulamak için iddiayı kullanıyoruz. İddia, istisnayı yakalayabilmesi ve gerekli kontrolleri yapabilmesi için bir işleve sarılır.divideDivideByZeroError
Doğru istisna atma testleri dahil ederek, fonksiyonlarımızın hata koşullarını uygun şekilde işlemesini ve beklenmeyen durumlar meydana geldiğinde anlamlı geri bildirim sağlamasını sağlayabiliriz. Bu, kodumuzun genel kalitesini ve güvenilirliğini artırmaya yardımcı olur.
Sonuç olarak, istisnalar oluşturan test fonksiyonları, yazılım testinin önemli bir yönüdür. Chai'nin throwiddiasıyla, gerektiğinde fonksiyonlarımızın beklenen istisnaları attığını kolayca doğrulayabiliriz. Bu testleri test stratejimize dahil ederek uygulamalarımızın sağlamlığını artırabilir ve daha iyi bir kullanıcı deneyimi sağlayabiliriz.
"Node.js, Mocha ve Chai" serisinin üçüncü makalesinde, Chai kullanarak işlevleri ve yöntemleri nasıl test edeceğimizi keşfedeceğiz. Chai, JavaScript kodundaki değerleri ve sonuçları test etmek için güçlü bir onaylama kitaplığıdır.
Nesne yöntemlerini ve davranışlarını test etme
Bir nesnenin yöntemlerini doğrulamak için Mocha ve Chai gibi test çerçeveleri tarafından sağlanan iddiaları kullanabiliriz. Bu iddialar, nesnelerin özellikleri ve davranışları hakkında iddialarda bulunmamızı sağlar.
calculatorToplama, çıkarma, çarpma ve bölme yöntemleriyle çağrılan bir nesneye sahip olduğumuz bir örneği ele alalım . Bu yöntemlerin doğru sonuçları döndürmesini sağlamak istiyoruz. Bu yöntemlerin davranışını doğrulamak için Chai'nin iddialarını kullanarak test senaryoları yazabiliriz.
const { expect } = require('chai');
const calculator = {
add: (a, b) => a + b,
subtract: (a, b) => a - b,
multiply: (a, b) => a * b,
divide: (a, b) => a / b,
};
describe('calculator', () => {
it('should return the correct sum when adding two numbers', () => {
expect(calculator.add(5, 3)).to.equal(8);
});
it('should return the correct difference when subtracting two numbers', () => {
expect(calculator.subtract(5, 3)).to.equal(2);
});
it('should return the correct product when multiplying two numbers', () => {
expect(calculator.multiply(5, 3)).to.equal(15);
});
it('should return the correct quotient when dividing two numbers', () => {
expect(calculator.divide(6, 3)).to.equal(2);
});
});
Yukarıdaki örnekte, expectnesnenin yöntemlerinin calculatorbeklenen sonuçları döndürdüğünü doğrulamak için Chai'nin iddiasını kullanıyoruz. Her test durumu, belirli bir yönteme odaklanır ve belirli bir girdi için doğru çıktıyı döndürüp döndürmediğini kontrol eder.
calculatorBu test durumlarını çalıştırarak, nesnenin yöntemlerinin beklendiği gibi davranmasını ve doğru sonuçlar vermesini sağlayabiliriz .
Yöntemlerin dönüş değerlerini kontrol etmenin yanı sıra, nesnelerin diğer özelliklerini ve davranışlarını doğrulamak için de iddiaları kullanabiliriz. Chai, özellik değerlerini kontrol etme, yöntem çağrılarını doğrulama ve daha fazlası gibi nesneler üzerinde çeşitli türlerde iddialar yapmamıza izin veren çok çeşitli iddialar sağlar.
Bir nesnenin yöntemlerini kapsamlı bir şekilde test ederek, bunların doğruluğunu ve güvenilirliğini sağlayabiliriz, bu da kod tabanımızın genel kalitesine katkıda bulunur.