Comment on page
TypeScript kullanarak Bun:test ile Hata Fırlatılmasını Beklemek - ts(2348)
bunjs, typescript, programming, except, async, throw, test
() =>
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()
})
Promise
içinrejects
kullanın
it("NotFoundError döndürmeli", () => {
expect(getUserData("olmayanUserId"))
.rejects.toBeInstanceOf(NotFoundError)
})
- Uyarıyı önlemek için
CustomError
yerinenew 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
})
- 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ı")
}
}

jRe9NPT.png

6tNPvSi.png