SlideShare a Scribd company logo
テスト用ライブラリ
power-assert
和田 卓人 (a.k.a id:t-wada or @t_wada)
May 29, 2014 @ JSオジサン #2
和田 卓人
id: t-wada
@t_wada
github: twada
テスト書いてますか?
http://twitpic.com/dzgwk8
沢山あって難しそう...
http://www.slideshare.net/teppeis/javascript-testwhywhathow/33
覚えることも多そう...
https://twitter.com/mizchi/status/457533802244362241
33メソッド!?
http://azu.github.io/slide/sakurajs/power-assert.html#/3azu さん調べ
アサーションライブラリの
不毛な軍拡競争は
何かがおかしい...
そもそも
assert の情報量が多
ければいいのでは?
power-assert
https://github.com/twada/power-assert
デモ
assert(typeof item.id === 'strong')
| | | |
| | | false
| | "hoge"
| Item{id:"hoge"}
"string"
--- [string] 'strong'
+++ [string] typeof item.id
@@ -1,6 +1,6 @@
str
-o
+i
ng
テスト失敗がこのように出力されます
良いインタフェースとは次の2つの条件
を満たすインタフェース
•正しく使用する方が操作ミスをする
より簡単
•誤った使い方をすることが困難
きのこ53: 正しい使い方を簡単
に、誤った使い方を困難に
7 2
"The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information"
assert(actual)
assert.deepEqual(actual,expected)
assert.notDeepEqual(actual,expected)
3つ覚えればテストは書ける
覚えることは少なく、かつ
テスト失敗時の情報は多く
何もなければ黙るのみ
落ちるときはやかましく
テストライブラリの競争は
語彙の繁栄と暴走を招いた
power-assert は
コードの復権
テスト書きましょう!
使い方
http://efcl.info/2014/0406/res3809/
http://efcl.info/2014/0411/res3820/
新機能
built with
browserify
依存ライブラリを同梱したバンドルを配布
BinaryExpression
string diff
assert(typeof item.id === 'strong')
| | | |
| | | false
| | "hoge"
| Item{id:"hoge"}
"string"
--- [string] 'strong'
+++ [string] typeof item.id
@@ -1,6 +1,6 @@
str
-o
+i
ng
BinaryExpression の右辺左辺を diff
デバッガ連携
SourceMap によるデバッガ連携
Special Thanks to
@azu_re さん
@vvakame さん
ご清聴ありがとうございました
power-assert
https://github.com/twada/power-assert

More Related Content

PDF
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
PPTX
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
PDF
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
PDF
xOps: エンジニアがスタートアップの成長の原動力となる日
PDF
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
PDF
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
PPTX
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
xOps: エンジニアがスタートアップの成長の原動力となる日
45分間で「ユーザー中心のものづくり」ができるまで詰め込む
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」

What's hot (20)

PDF
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
PDF
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
PPTX
Apache Avro vs Protocol Buffers
PPTX
Triplet Loss 徹底解説
PDF
ユーザーストーリー駆動開発で行こう。
PDF
これからはじめるインフラエンジニア
PDF
「顧客の声を聞かない」とはどういうことか
PDF
解説!30分で分かるLEAN ANALYTICS
PPTX
本当は恐ろしい分散システムの話
PPTX
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
PPTX
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話
PDF
4つの戦犯から考えるサービスづくりの失敗
PDF
私にとってのテスト
PDF
正しいものを正しくつくる
PPTX
DockerコンテナでGitを使う
PDF
40歳過ぎてもエンジニアでいるためにやっていること
PDF
君にグロースハックはいらない
PPTX
Dbts 分散olt pv2
PDF
組織にテストを書く文化を根付かせる戦略と戦術
PPTX
Active Learning と Bayesian Neural Network
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
Apache Avro vs Protocol Buffers
Triplet Loss 徹底解説
ユーザーストーリー駆動開発で行こう。
これからはじめるインフラエンジニア
「顧客の声を聞かない」とはどういうことか
解説!30分で分かるLEAN ANALYTICS
本当は恐ろしい分散システムの話
チームトポロジーから学び、 データプラットフォーム組織を考え直した話.pptx
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話
4つの戦犯から考えるサービスづくりの失敗
私にとってのテスト
正しいものを正しくつくる
DockerコンテナでGitを使う
40歳過ぎてもエンジニアでいるためにやっていること
君にグロースハックはいらない
Dbts 分散olt pv2
組織にテストを書く文化を根付かせる戦略と戦術
Active Learning と Bayesian Neural Network
Ad

Viewers also liked (20)

PDF
かすたむ!
PDF
JSと仲良くなるための心得
PDF
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
PDF
Java script関数コールの追跡
PDF
JSとKinectさん
PDF
みんなが調べないJS調べてみた JSオジサン#2
PDF
設計は相談だ
PPTX
君よ知るや JScript.NET
PDF
power-assert in JavaScript
PDF
Reviewing RESTful Web Apps
PDF
unassert - encourage reliable programming by writing assertions in production
PDF
テストを書く文化を育てる戦略と戦術
PDF
Test Yourself - テストを書くと何がどう変わるか
PDF
TDD のこころ @ OSH2014
PDF
OSS についてあれこれ
PDF
20140529 JS Ojisan #2 LT あの「note」はAngular.js
PDF
JSオジサン openframeworks emscripten
PDF
OSS活動の活発さと評価の関係について
PDF
power-assert, mechanism and philosophy
DOCX
Program rada i financijski plan 2015.
かすたむ!
JSと仲良くなるための心得
JSRelでlocalStorageを使って 完全オフラインなブラウザアプリ@JSおじさん #2
Java script関数コールの追跡
JSとKinectさん
みんなが調べないJS調べてみた JSオジサン#2
設計は相談だ
君よ知るや JScript.NET
power-assert in JavaScript
Reviewing RESTful Web Apps
unassert - encourage reliable programming by writing assertions in production
テストを書く文化を育てる戦略と戦術
Test Yourself - テストを書くと何がどう変わるか
TDD のこころ @ OSH2014
OSS についてあれこれ
20140529 JS Ojisan #2 LT あの「note」はAngular.js
JSオジサン openframeworks emscripten
OSS活動の活発さと評価の関係について
power-assert, mechanism and philosophy
Program rada i financijski plan 2015.
Ad

More from Takuto Wada (18)

PDF
アジャイルサムライの次に読む技術書
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
PDF
愛せないコードを書くには人生はあまりにも短い
PDF
ペアプログラミング ホントのところ
PDF
RESTful Web アプリの設計レビューの話
PDF
例外設計における大罪
PDF
TDDBC お題
PDF
DevLOVE DDDBC
PDF
TDDBC Fukuoka Day1
PDF
js テスト放浪記
PDF
xUTP Chapter19 (2). Testcase Class
PDF
xUTP Chapter26. Dependency Injection
PDF
xUTP Chapter27 Generated Value
PDF
The only one big thing every programmer should know
PDF
10+1 Things you should know about JavaScript testing
PDF
TDD のこころ
PDF
Tochigi Test-no-Kaigi position paper
アジャイルサムライの次に読む技術書
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
愛せないコードを書くには人生はあまりにも短い
ペアプログラミング ホントのところ
RESTful Web アプリの設計レビューの話
例外設計における大罪
TDDBC お題
DevLOVE DDDBC
TDDBC Fukuoka Day1
js テスト放浪記
xUTP Chapter19 (2). Testcase Class
xUTP Chapter26. Dependency Injection
xUTP Chapter27 Generated Value
The only one big thing every programmer should know
10+1 Things you should know about JavaScript testing
TDD のこころ
Tochigi Test-no-Kaigi position paper

テスト用ライブラリ power-assert