LinkedIn にシェア
LINEで送る
Pocket

B===D


みなさん、これ何に見えます?

 

はいどーも、はどはど です。

今回は、Node.jsとJestと「penis.js」を使って、
簡単なテストコードの書き方を解説していきます。

Node.js とは?

ググろう。
まあ、簡単に言えば、
サーバーサイドでJavaScriptを使えるようにするやつです。

Jest とは?

ググろうぜ!
Facebookの会社がオープンソースで作ってる、
ユニットテストフレームワークです。

penis.js とは?

そこのキミ!「 penis.js 」を知らないのか!?
おじさんが教えてあげよう・・・!

edankwan/penis.js

penis.js とは、変数同士の比較を
明示的に記述するのに特化したモジュールです。

これを使うことで、
より明示的に変数同士の繋がりを記述できるようになります。

実際に書いていこう!

まず適当にディレクトリを作ったら…

# mkdir jestpenis ; cd jest-penis

npm init -y
npm install -S jest edankwan/penis.js

をターミナル上から行い、 jest と penis.js をインスコする。

すると package.json が作られ更新されるので、

  "scripts": {
-    "test": "echo \"Error: no test specified\" && exit 1"
+    "test": "jest"
  },

というように、 npm scripts から jest を起動できるように設定する。

次に penis.spec.js というファイルを作り…

以下のようにコードを書く。

describe("penis", () => {
  it("文字列の「1」と数字の「1」は等価である", () => {
    const A = "1";
    const B = 1;
    expect(A == B).toBeTruthy();
  })
  it("文字列の「1」と数字の「1」は厳密には異なる", () => {
    const A = "1";
    const B = 1;
    expect(A === B).toBeFalsy();
  })
})

describe はテスト1つの単位のようなもので、
その中にテストケースとして it を用いてテスト方法を記述していく。

このテストでは、文字列型の「1」と数値型の「1」が、
「==」と「===」では等価かどうかが異なることを担保するコードだ。

ここでターミナルからテストを起動してみよう

npm run test

すると以下のような結果が出て成功する

jestpenis>yarn test
yarn run v1.12.3
$ jest
 PASS  ./penis.spec.js
  penis
    √ 文字列の「1」と数字の「1」は等価である (2ms)
    √ 文字列の「1」と数字の「1」は厳密には異なる

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        1.564s
Ran all test suites.
Done in 2.46s.

では、今度はこれを penis.js を使って書いてみよう。

こうなる。

const penis = require("penis");

describe("penis", () => {
  it("文字列の「1」と数字の「1」は等価である", () => {
    penis.setBalls("1");
    penis.setHead(1);
    expect(

      B==D

    ).toBeTruthy();
  })
  it("文字列の「1」と数字の「1」は厳密には異なる", () => {
    penis.setBalls("1");
    penis.setHead(1);
    expect(

      B===D

    ).toBeFalsy();
  })
})

どうだろう。露骨なほどに明示的になったのではないだろうか。

このように、 penis.js を使用することで、より明示的な比較が可能になる。

コードにはビジュアル面も重要だと思う人は是非、
試してみてはどうだろう?

 

 

…ところで、「 B===D 」って何かに似てるな・・・?

なんだろう…
末尾に、-3を加えてみたらわかるかな・・・

 

 

Nodeクックブック
  • David Mark Clements
  • 価格   ¥ 3,672 prime
  • 販売者 Amazon.co.jp
クリックして今すぐチェック
React開発 現場の教科書
  • 石橋 啓太
  • 価格   ¥ 3,769 prime
  • 販売者 Amazon.co.jp
クリックして今すぐチェック
Node.js超入門[第2版]
  • 掌田 津耶乃
  • 価格   ¥ 3,240 prime
  • 販売者 Amazon.co.jp
クリックして今すぐチェック