Testable JavaScript
-
Upload
ryunosuke-sato -
Category
Technology
-
view
4.880 -
download
1
description
Transcript of Testable JavaScript
Testable JavaScript
佐藤 竜之介(Ryunosuke SATO)Sapporo.js
RubySapporoNight vol.14
http://www.flickr.com/photos/8773698@N03/2929230558
提供
Sapporo.js
Community for people who like JavaScript.
It’s my feature
よろしくお願いします
Testable JavaScript
佐藤 竜之介(Ryunosuke SATO)Sapporo.js
RubySapporoNight vol.14
http://www.flickr.com/photos/8773698@N03/2929230558
対象者
webブラウザで動くJavaScript を書いている方JavaScript のテストに興味がある方
テストを書いて快適に開発をしたい方
Ruby でサーバ側を作ってるけど
JavaScript を書く機会が増えてきた方
たとえば...
??Test
Rubyには洗練されたテスト文化
JavaScript ではまだ十分ではないと思う
In browser
difficult
??why
http://www.flickr.com/photos/zuka0607/4311979628
design
(^q^)
そうなる前に!
整理整頓
‘‘http://redbitbluebit.com/code-kata-software-memory-muscles/
KATA
http://blog.nodejitsu.com/scaling-isomorphic-javascript-code
翻訳: https://gist.github.com/1362110
http://documentcloud.github.com/backbone/
point
ドメインロジックと画面の分離
Testable
http://tasklist-demo.herokuapp.com/
source: https://github.com/tricknotes/task-list
http://tasklist-demo.herokuapp.com/
source: https://github.com/tricknotes/task-list
(demo)
一カ所の変更が、複数の表示に影響を与えている
表示箇所を一つ増やそうとすると、すべてのアクションにイベントを追加する
必要がある
http://www.flickr.com/photos/pappuradonkarume/4711288623
‘‘http://redbitbluebit.com/code-kata-software-memory-muscles/
KATA
ドメインロジックと画面の分離
TaskView
TotalView
Task
TaskTotalView
TaskView
subscribe
subscribe
publish
publish
action
Model
View
View
Testable!!
Unit Test
TaskTotalView
TaskView
subscribe
subscribe
publish
publish
Model
View
View
action
http://visionmedia.github.com/mocha/
Unit Test
using: mocha( http://visionmedia.github.com/mocha/ ) expect.js( https://github.com/LearnBoost/expect.js )
Unit Test
Acceptance Test
TaskTotalView
TaskView
subscribe
subscribe
publish
publish
Model
View
View
action
Acceptance Test
using: mocha( http://visionmedia.github.com/mocha/ ) expect.js( https://github.com/LearnBoost/expect.js ) zombie ( http://zombie.labnotes.org/ )
Acceptance Test
Ruby JavaScript
TestUnit QUnit
RSpec jasminemocha
capybara-webkit zombie
今回使ったフレームワーク
他にもこの辺オススメ
Ruby JavaScript
cucumber cucumber
RSpec(matcher)should.jsexpect.js
etc...
CI でもブラウザでも同じように動くテストhtml5 の機能のテスト (canvas, localStorage...)
課題
大事なこと
安心して開発を行うためのテスト大事
テストしやすい設計
分離された構造
変更に強い設計
手を加える度に、進歩して行ける開発を!
http://www.flickr.com/photos/ku_photodigital/6309174528