TypeScript kullanarak Bun:test ile Hata Fırlatılmasını Beklemek - ts(2348)

bunjs, typescript, programming, except, async, throw, test

Basit Örnek

  • () => kullanımında dikkatli olun

// someFunction.ts
export function someFunction(shouldThrow: boolean): void {
	if (shouldThrow) {
		throw new Error("Ben bir hata'yım!")
	}
}

// someFunction.test.ts
import { someFunction } from "./someFunction"

test("bir hata fırlatmalı", () => {
	expect(() => someFunction(true)).toThrow("Ben bir hata'yım!")
})

test("bir hata fırlatmamalı", () => {
	expect(() => someFunction(false)).not.toThrow()
})

Async Örnek

  • Promise için rejects kullanın

it("NotFoundError döndürmeli", () => {
	expect(getUserData("olmayanUserId"))
		.rejects.toBeInstanceOf(NotFoundError)
})

Özel Hata Türleri ile İleri Kullanım

  • Uyarıyı önlemek için CustomError yerine new CustomError() kullanın

  • () => kullanımında dikkatli olun

// CustomError.ts
export class CustomError extends Error {
	constructor(message: string) {
		super(message)
		Object.setPrototypeOf(this, CustomError.prototype)
	}
}

// someFunction.ts
import { CustomError } from "./CustomError"

export function someFunction(shouldThrow: boolean): void {
	if (shouldThrow) {
		throw new CustomError("Ben özel bir hatayım!")
	}
}

// someFunction.test.ts
import { someFunction } from "./someFunction"
import { CustomError } from "./CustomError"

test("özel bir hata fırlatmalı", () => {
	expect(() => someFunction(true)).toThrow(new CustomError())
	// Uyarıyı önlemek için `new CustomError()` yerine `CustomError` kullanın
	// `() =>` kullanımında dikkatli olun
})

Value of type "typeof X' is not callable. Did you mean to include 'new'? ts(2348)

  • Gösterilen hatayı önlemek için new AlreadyAdjusted() kullanın

  • Bu hata calisma sirasinda sorun teskil etmez

export class AlreadyAdjusted extends Error {
	constructor() {
		super("Zaten ayarlandı")
	}
}

Last updated

© 2024 ~ Yunus Emre Ak ~ yEmreAk