Skip to content

Instantly share code, notes, and snippets.

@Layzie
Last active April 29, 2023 14:58
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Layzie/5466225 to your computer and use it in GitHub Desktop.
Save Layzie/5466225 to your computer and use it in GitHub Desktop.
第38回 HTML5とか勉強会

第38回 HTML5とか勉強会

JavaScriptテスト最新事情 Why? What? How?

テスト環境の向上

  • Node.jsの隆盛など

どこから手をつけるか

  • ビューとコードが結びついてる
    • MV*で解決
  • ブラウザが扱いづらい
    • ツールで解決

MV*とか

色々宗派あるけど。

メール一覧画面

ビューは出すだけ。

Modelのテストしよう

viewのテスト

  • DOMテスト書きにくい
  • ユーザビリティのテストできない

HOW

テストツールの分類

  • モックライブラリ
  • テスティングフレームワーク
  • テストランナー
  • 実行環境

実行環境が重要

  • 実ブラウザ
    • 遅い。本物
  • ヘッドレスブラウザ
    • webkitだけ。簡単
  • シミュレータ
    • 速い

リモートテストランナー

  • 実ブラウザの欠点を補う
  • Karmaとか、testemとか。

おすすめ

Jasmin + testem + 実ブラウザ

ユニットテスト以外

  • カバレッジ測定
  • 静的測定
  • Lint

jasmine

斉藤裕也さん

テストについて

テストしやすいのは、良いコード

BDD

introducing-bddで読める

これから作成しようとするプログラムに期待されふるまいをテスト

  1. 小さく1つのテスト
  2. 自然言語でテスト書く

jasmin

JavaScriptのBDDを手助けするもの。

SinonJS

SinonJSとは

  • テストダブルとしてつかう

spy

  • 呼び出し回数や、呼び出された引数を記録しておく
  • donw()を呼び出さなくても済む

stub

  • メソッドを上書き

mock

  • spyとstubの機能を全てもっている

mockでもstubでもどっちでも

fake timer

  • timerを操作する

fake xhr

JSテストフレームワークの比較(QUnit、Mocha、Jasmine...)

講演者による座談会

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment