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
ユーザーインタビューするときは、どうやらゾンビのおでましさ
Yoshiki Hayama
 
PPT
20120624 wacate2012 s_イブニングセッション(当日用)
Masaki Kase
 
PDF
開発速度が速い #とは(LayerX社内資料)
mosa siru
 
PDF
IT系エンジニアのためのプレゼンテーション入門
Masahito Zembutsu
 
PDF
C/C++とWebAssemblyを利用したライブラリ開発
祐司 伊藤
 
PPTX
マイクロサービスにおける 結果整合性との戦い
ota42y
 
PDF
power-assert in JavaScript
Takuto Wada
 
PPTX
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
 
ユーザーインタビューするときは、どうやらゾンビのおでましさ
Yoshiki Hayama
 
20120624 wacate2012 s_イブニングセッション(当日用)
Masaki Kase
 
開発速度が速い #とは(LayerX社内資料)
mosa siru
 
IT系エンジニアのためのプレゼンテーション入門
Masahito Zembutsu
 
C/C++とWebAssemblyを利用したライブラリ開発
祐司 伊藤
 
マイクロサービスにおける 結果整合性との戦い
ota42y
 
power-assert in JavaScript
Takuto Wada
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
 

What's hot (20)

PPTX
優れた研究論文の書き方―7つの提案
Masanori Kado
 
PDF
目grep入門 +解説
murachue
 
PDF
実践QBVH
Shuichi Hayashi
 
PDF
雑なMySQLパフォーマンスチューニング
yoku0825
 
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
Takuto Wada
 
PDF
Lean coffee
Takeshi Arai
 
PDF
スマホ(Android・iPhone)でWebRTC
Natsuki Yamanaka
 
PDF
PostgreSQLアンチパターン
Soudai Sone
 
PDF
なぜデータモデリングが重要なのか?
Yoshitaka Kawashima
 
PDF
ゲーム開発環境の自動化
Masahiko Nakamura
 
PDF
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
 
PDF
XSS再入門
Hiroshi Tokumaru
 
PDF
chatGPTの驚くべき対話能力.pdf
YamashitaKatsushi
 
PDF
君はyarn.lockをコミットしているか?
Teppei Sato
 
PDF
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
 
PDF
実践イカパケット解析α
Yuki Mizuno
 
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
 
PDF
イミュータブルデータモデルの極意
Yoshitaka Kawashima
 
PDF
規格書で読むC++11のスレッド
Kohsuke Yuasa
 
PDF
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
 
優れた研究論文の書き方―7つの提案
Masanori Kado
 
目grep入門 +解説
murachue
 
実践QBVH
Shuichi Hayashi
 
雑なMySQLパフォーマンスチューニング
yoku0825
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
Takuto Wada
 
Lean coffee
Takeshi Arai
 
スマホ(Android・iPhone)でWebRTC
Natsuki Yamanaka
 
PostgreSQLアンチパターン
Soudai Sone
 
なぜデータモデリングが重要なのか?
Yoshitaka Kawashima
 
ゲーム開発環境の自動化
Masahiko Nakamura
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
Mikiya Okuno
 
XSS再入門
Hiroshi Tokumaru
 
chatGPTの驚くべき対話能力.pdf
YamashitaKatsushi
 
君はyarn.lockをコミットしているか?
Teppei Sato
 
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
 
実践イカパケット解析α
Yuki Mizuno
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
 
イミュータブルデータモデルの極意
Yoshitaka Kawashima
 
規格書で読むC++11のスレッド
Kohsuke Yuasa
 
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
 
Ad

Viewers also liked (20)

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

More from Takuto Wada (17)

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

Recently uploaded (11)

PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 

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