[[Deno]]のテストコードでErrorが発生することを確認する方法。[[@std.assert (Deno)|@std/asset]]の関数を使う。非同期の場合は[[assertRejects (Deno)|assertRejects]]。動機の場合は[[assertThrows (Deno)|assertThrows]]。
```js
import { assertRejects, assertThrows } from "@std/assert";
function asyncThrowError() {
return new Promise((_, reject) => {
reject(new Error("async error"));
});
}
function throwError() {
throw new Error("sync error");
}
Deno.test("throwError - 期待通りのメッセージを含むエラーを返す", () => {
assertThrows(throwError, Error, "error");
});
Deno.test("throwError 期待通りのメッセージを含まないエラーを返す", () => {
assertThrows(throwError, Error, "foo");
});
Deno.test("asyncThrowError - 期待通りのメッセージを含むエラーを返す", async () => {
await assertRejects(asyncThrowError, Error, "error");
});
Deno.test("asyncThrowError 期待通りのメッセージを含まないエラーを返す", async () => {
await assertRejects(asyncThrowError, Error, "foo");
});
```