Loading...

JavaScript をテストするときに考える10のことがら+1

和田 卓人 (a.k.a id:t-wada or @t_wada)

Press key to advance.

Slides controls, press:

  • and to move around.
  • Ctrl/Command and + or - to zoom in and out if slides don’t fit.
  • T to change the theme.
  • H to toggle syntax highlight.

自己紹介

  • 名前 : 和田 卓人(わだ たくと)
  • ブログ : id:t-wada
  • Twitter : @t_wada
  • github / facebook : twada
  • タワーズ・クエスト株式会社 取締役社長

./../../images/TQ_LOGO_SMALL.png

プログラマが知るべき97のこと

よろしくお願いします

「全部をテストする」ことはできない

  • 使い心地、綺麗な見た目のテストは人間にしか出来ない
  • 人間でなくとも出来ることをテストにサポートさせる

目視を可能な限り減らす

  • js の開発において見た目は重要。目視はやめられない。
  • 目視しないといけないところと、目視しなくても良いところを分ける
  • 目視しなければならない箇所が減るほど、人間の手間も減る

同期処理部分と非同期処理部分を分ける

  • 非同期処理はテストできないか、テストが難しい
  • 非同期処理のテストには時間もかかりがち
  • なので、非同期部分のコードを最小にする

内部構造を隠蔽しすぎない

  • テストから見えるようにしよう
  • 無名ハンドラ関数はなるべく使わない
  • テストからハンドラを置き換えたりできるようにする

カスタムイベントで疎結合化する

  • イベント発火元と受取側の結合度を減らす
  • デザイン変更、DOM 構造の変更にも強くなる

先人の設計を学ぶ

  • GoF のパターンは UI 開発に使えるものが多い
  • UI 設計のパターンを学ぶ

迷ったら、シンプルな仕組みを好む

  • QUnit

ブラウザ無しでテストできる部分を増やす

  • env-js
  • xmlw3cdom.js
  • QUnit-TAP

ソフトウェアの梃子(てこ)の効果を使う

  • UNIX
  • prove
  • jscoverage
  • カバレッジの罠に注意

徹底的に自動化する

  • 人間が目視せずに検証できるテストは自動化する
  • Continuous Integration
  • TestSwarm

js のテストはいまだフロンティアである

  • 未来を作るのは、あなたかもしれない