ユニットテストの事例と冗談へのイントロ


あなたが私のような何かであるならば、期限に直面するとき、あなたは最初の実際のコーディングにジャンプしたいです.確かに、多分あなたはあなたのAPIのエンドポイントをwiflaming、またはスケッチを少し行うが、より速く、あなたがコーディングに取得するには、より良い-あなたはたくさん持っている!
このポストでは、私はテストは、あなたの時間の価値があるだけでなく、最終的に多くの心痛を保存し、道を下って保存されますので、それはあなたが徹底的に小さな作品に大きなタスクを分割することによって、プログラムを整理することが強制されます.
また、Jestフレームワークを使用して単体テストを書く方法の簡単な例を実行します.

何がテストされ、なぜユニットテスト?
コーディングの文脈では、単体テストはプログラムの機能を最も小さくて消化できる単位に分解して、あなたのコードの各々の単位が予想通りに実行していることを確かめるテストを書くことを含みます.
最初は、テストが有用であることは明白ではないかもしれません.結局、あなたはより多くのコードを書くことを終えるというわけではありません?
それは本当です.時間がかかる.でも――

1 .ドキュメントとして2倍になります.
テストフレームワーク構文は、英語にかなり似ています--少なくともあなたのバニラプログラミング言語より近い.このため、テスト関数は、与えられた関数が何をすべきかほとんどリテラルな説明です!あなたの将来の自己とあなたのコードを読んでいる他のプログラマーのためにかなり便利です.

あなたは常にあなたに忍び込むことができる複雑さを予測することはできません.
プログラマとして、謙虚なままでなければならないし、我々は時々我々の目標に向かってパスに混乱してしまうと仮定します.
コードは消化を開始することができますが、簡単に複雑に成長することができます.我々は、その複雑さに圧倒されるのを避けるために、我々ができるどんなツールでも使うべきです.テストはそのようなツールです.

3 .ユニットテストは、コードをモジュール化し、自分の考えを整理します.
理想的には、テストでは、最小の可能なユニットにあなたのプログラムを破壊し、本当にあなたが各ユニットを行うと期待するものに掘り下げになります.これはコードをより脆弱にするだけではなく、コードの各セクションがどのように機能しているか、そしてどのようにしてそれらがすべて機能しているかを深く理解することを強いるでしょう.

フレームワークのテスト
あなたは技術的にテストを実行するフレームワークを必要としないが、彼らはプロセスを超便利にします.そこにいくつかの信頼性の高いテストフレームワークがあります.私はこの例のためにJESTで動作するつもりです.そして、それは作成された反応アプリBoilerplateが付属するツールです.それは独自の組み込みアサーション、スパイ、スタブ、模擬ライブラリを持って、また簡単にフロントエンドコンポーネントをテストすることができます.

JESTの基礎

セットアップと構文
あなたが必要になりますpackage.json ファイル.(もし持っていなければ、実行してくださいnpm init -y 端末から)
ランnpm install --save-dev jest 追加jesttest あなたのスクリプトpackage.json . ここから走るnpm test あなたのJestテストスイートをアクティブにします.
"scripts": {
    "test": "jest"
  },
  "jest": {
    "collectCoverage": true,
    "coverageReporters": [
      "html"
    ]
  }
インストールしたならcreate-react-app Boilerplate、冗談はすでにあなたの中にあるはずですtest あなたのためのスクリプト.
あなたがテストしている機能を書いて、エクスポートするファイルを作成してください.テスト用の別のファイルを作成します.テストファイルでテストする関数が必要です.
// mySweetFunction.js
const mySweetFunction = () => {
  const somethingSweet = 'sweet';
  return somethingSweet;
}

module.exports = mySweetFunction;

// mySweetFunction.test.js
const mySweetFunction = require('./mySweetFunction'); 

describe('my sweet function', () => {

  test('it should return something sweet', () => {
    expect(mySweetFunction()).toBe('sweet');
  });

  test('it should not return something sour', () => {
    expect(mySweetFunction()).not.toBe('sour');
  })
})
describe() 一緒に複数の関連テストをグループ化します.test() 個々のテストを呼び出します.両方describe() and test() 2つの引数を取ります
  • 関数の特定の機能が何であるか、またはどのような関数が記述しているかを示す文字列.
  • 匿名テスト機能
  • Jestでテストを書く一般的な方法はexpect() キーワードを使用して値を比較する.上の例ではtoBe() and not.toBe() マッチョです.あなたのニーズに合うように多くのmatchersがありますhere. )

    MPJの愛のために、ユニットテストを書く!
    これは、超簡単なイントロを書くテストし、なぜあなたの時間を投資する必要があります.私がここで与えた例は小さいものです、そして、私は必ずしも非常に小さいプログラムのためにテストスイートを書くことを勧めません.しかし、複数の可動部分を持つどんな堅牢なプロジェクトに対しても、他のコードを書く前に真剣にテストを書くべきである.
    ライクflossing your teeth , ライティングユニットのテストは、多くのインスタント満足を提供していませんが、それは道を下に多くの痛みを保存することができます.