ノード18が利用可能になりました!😎
6097 ワード
この小さなポストでは、NODEJS 18の新機能をテストします.
ノード.JS 18は2022年10月に長期支援(LTS)に移行する.
ノード.JSの18リリース、私はいくつかの新機能を強調します.
エキサイティングな新機能が含まれます:実験的なフェッチ テストランナー ecmascriptモジュールの改良 は、abortcontrollerとabortsignal のためのサポートを改善しましたはプラットホーム支持 を更新しました
他の特徴の間で.
今日では、いくつかの例を試してみることになります.findlastと配列.表面的方法におけるfindlastindex
では、パッケージを作成しましょう.JSONコマンド
現在、インデックスとなるファイルを作成します.我々が我々のテストを書き始めるJS.
まず始めましょう.
これをインポートすると、我々は今我々の最初のテストを書くことができます.
文字列をアサートするには、最初のパラメータとしてテストしたい文字列を渡し、2番目のパラメータとして、前のコードで見た正規表現を送信します.
また、オプションの3番目のパラメータを送信することができますが、カスタムエラーメッセージとして機能します.例を見ましょう.
ここで2つの値をテストすることができるようになります.
テストを実行してください
オブジェクトをテストするつもりです.このため、DeepstricteQualメソッドを使用して、オブジェクトのプロパティをテストするのに役立ちます.
非同期関数をテストするには、非同期コールバックを使用しなければなりません.この方法で、約束を解決できるように待機します.
さあアレイを試します.FindDlastメソッドは、1から10までの数の配列を作成します.そして、3の最後の倍数を探します.結果として、9を得る必要があります
次に、配列の操作が表示されます.findLastIndexメソッドは、繰り返し数を持つ配列を持ち、3に等しい要素の最後のインデックスを探します.この場合、配列に従って9になります.
今、私たちはフェッチしている私のお気に入りの機能のいずれかを試してみるつもりです.
JSONPlaceholder API終点https://jsonplaceholder.typicode.com/users/1に電話しましょう
私は個人的にこれを愛しており、それが安定するのを待つことができません.
最後に、サブテストを行います.
だから、これをクリアすると、新しいノードを試すことができます.個人的には、テストとノードAPIを組み込むのが本当に好きでした.
確かに超便利である配列の新しいメソッドについては、私たちは失敗することはできません.
ノード.JS 18は2022年10月に長期支援(LTS)に移行する.
ノード.JSの18リリース、私はいくつかの新機能を強調します.
エキサイティングな新機能が含まれます:
他の特徴の間で.
今日では、いくつかの例を試してみることになります.findlastと配列.表面的方法におけるfindlastindex
このリポジトリからすべてのコードを得ることができます
始める
では、パッケージを作成しましょう.JSONコマンド
npm init -y
あなたがofficial pageからノードのバージョン18をインストールしなければならないのを思い出してください現在、インデックスとなるファイルを作成します.我々が我々のテストを書き始めるJS.
まず始めましょう.
import test from "node:test";
import assert from "node:assert";
私たちは、node:
に先立って来なければならない2つのAPIを持っていることを確認します.これをインポートすると、我々は今我々の最初のテストを書くことができます.
文字列をテストします
test("Testing a string", () => {
assert.match("Welcome Node 18", /Node 18/);
});
このテストでは以下の出力を行います.ok 1 - Testing a string
---
duration_ms: 0.000385918
...
まず最初に、最初のパラメータとして記述を受け取るテストメソッドと、2番目のパラメータとしてコールバックを使用します文字列をアサートするには、最初のパラメータとしてテストしたい文字列を渡し、2番目のパラメータとして、前のコードで見た正規表現を送信します.
また、オプションの3番目のパラメータを送信することができますが、カスタムエラーメッセージとして機能します.例を見ましょう.
test("Testing a string fails", () => {
assert.match("Hello", /world/, 'This string does not contain "world"');
});
このテストでは以下の出力を行います.❯node index.test.js
not ok 1 - Testing a string fails
duration_ms: 0.000888784
failureType: 'testCodeFailure'
error: 'This string not contains "world"'
code: ERR_ASSERTION
stack: |-
TestContext.<anonymous> (file:///Users/jordandev/Desktop/node18/index.test.js:5:10)
Test.runInAsyncScope (node:async_hooks:202:9)
Test.run (node:internal/test_runner/test:333:20)
Test.start (node:internal/test_runner/test:287:17)
Test.test (node:internal/test_runner/harness:126:18)
file:///Users/jordandev/Desktop/node18/index.test.js:4:1
ModuleJob.run (node:internal/modules/esm/module_job:198:25)
async Promise.all (index 0)
async ESMLoader.import (node:internal/modules/esm/loader:409:24)
async loadESM (node:internal/process/esm_loader:85:5)
...
tests 1
pass 0
fail 1
skipped 0
todo 0
duration_ms 0.062970366
エラーが発生すると、カスタムエラーが表示されます.等しいとnotequal
ここで2つの値をテストすることができるようになります.
test("Testing that a number is equal", () => {
let current = 99;
let expected = 99;
assert.equal(actual, expected);
});
test("Testing that a number is not equal", () => {
let current = 22;
let expected = 393;
assert.notEqual(actual, expected, `${actual} is not equal to ${expected}`);
});
ご覧のように、2番目のパラメータとして現在の値を受け取ります.テストを実行してください
node index.js
ディープstrictequal
オブジェクトをテストするつもりです.このため、DeepstricteQualメソッドを使用して、オブジェクトのプロパティをテストするのに役立ちます.
test("Testing objects", () => {
assert.deepStrictEqual(
{ name: "jordan" },
{ name: "jordan" },
"Objects are not equal"
);
});
非同期機能のテスト
非同期関数をテストするには、非同期コールバックを使用しなければなりません.この方法で、約束を解決できるように待機します.
test("Testing asynchronous functionality", async() => {
const number = await Promise.resolve(90);
assert.equal(number, 90, "The number is not equal to 90");
});
配列。findlastと配列。findlastIndex
さあアレイを試します.FindDlastメソッドは、1から10までの数の配列を作成します.そして、3の最後の倍数を探します.結果として、9を得る必要があります
test("Array.findLast", () => {
constant numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const lastmultipleofthree = numbers.findlast((n) => n % 3 === 0);
assert.equal(lastMultipleOfThree, 9);
});
findlastメソッドは、シンタックスでフィルタに似ていますが、見つかった最後の要素を返します.次に、配列の操作が表示されます.findLastIndexメソッドは、繰り返し数を持つ配列を持ち、3に等しい要素の最後のインデックスを探します.この場合、配列に従って9になります.
test("Array.findLastIndex", () => {
const numbers = [1, 3, 2, 4, 4, 3, 4, 1, 9, 3];
const lastIndexOfThree = numbers.findLastIndex((n) => n === 3);
assert.equal(lastIndexOfThree, 9);
});
これはfindindexに似ていますが、条件に基づいて要素の最後に見つかったインデックスを返します.フェッチ
今、私たちはフェッチしている私のお気に入りの機能のいずれかを試してみるつもりです.
JSONPlaceholder API終点https://jsonplaceholder.typicode.com/users/1に電話しましょう
test("Fetch", async() => {
const reponse = await fetch("https://jsonplaceholder.typicode.com/users/1");
const json = await response.json();
assert.equal(json.name, "Leanne Graham");
});
我々が見ることができるように、我々はちょうど我々がブラウザからそうするようにフェッチ機能を持っています.私は個人的にこれを愛しており、それが安定するのを待つことができません.
サブテスト
最後に、サブテストを行います.
test("top level test", async (t) => {
await t.test("subtest 1", (t) => {
assert.strictEqual(1, 1);
});
await t.test("subtest 2", (t) => {
assert.strictEqual(2, 2);
});
});
この例は公式のNodeJSドキュメントによって提供されます.ご覧のように、コールバックが与えるパラメータを通してチェインテストを行うのはとても簡単です.だから、これをクリアすると、新しいノードを試すことができます.個人的には、テストとノードAPIを組み込むのが本当に好きでした.
確かに超便利である配列の新しいメソッドについては、私たちは失敗することはできません.
If you want to know more about this update you can see it from the official blog here
Reference
この問題について(ノード18が利用可能になりました!😎), 我々は、より多くの情報をここで見つけました https://dev.to/jordandev/node-18-is-now-available-3ld6テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol