Java scriptでTDD

835 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
835
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Java scriptでTDD

  1. 1. JavaScriptでTDD すまべん関東 #162011/12/03 @oota_ken
  2. 2. こんな本が出てた● 買ってないです● これから買います● 内容不明です● それはさてお き、JavaScriptのテ スティングフレーム ワークは使いにくい ものが多いです
  3. 3. google-js-test● http://code.google.com/p/google-js-test/● GoogleによるJavaScriptテスティングフレー ムワーク● V8が内蔵されていて、ブラウザーなしでコマ ンドラインから使える● Google Test for C++に似ているというか元に した
  4. 4. テストコード some_functions_test.js//////////////////////////// getSomeWords 文字列配列Hello Worldを取得する//////////////////////////function GetSomeWordsTest() {}registerTestSuite(GetSomeWordsTest);GetSomeWordsTest.prototype.ReturnsCorrectWords = function() { var words = myproject.getSomeWords(); // Assert directly what the words should be. expectThat(words, elementsAre([Hello, World])); // Note that you could have also done so as follows, but it doesnt give // error messages that are as nice. expectEq(2, words.length); expectEq(Hello, words[0]); expectEq(World, words[1]);};
  5. 5. 実装コードnamespace.js (名前空間用) some_functions.jsvar myproject = {};// Return some interesting words.myproject.getSomeWords = function() { return [Hello, world];};
  6. 6. 実行!h241n073:google-js-test-sample oota_ken$ gjstest--js_files=namespace.js,some_functions.js,some_functions_test.js[----------][ RUN ] GetSomeWordsTest.ReturnsCorrectWordssome_functions_test.js:12Expected: is an array or Arguments object of length 2 with elements matching: [ Hello, World ]Actual: [ Hello, world ], whose element 1 doesnt matchsome_functions_test.js:18Expected: WorldActual: world[ FAILED ] GetSomeWordsTest.ReturnsCorrectWords (4 ms)[----------][ FAILED ] こけたOTL “World”を”world”とスペルミス TDDだからテストが先にあるお!
  7. 7. 直して// Return some interesting words.myproject.getSomeWords = function() { return [Hello, World];};
  8. 8. 再実行!h241n073:google-js-test-sample oota_ken$ gjstest--js_files=namespace.js,some_functions.js,some_functions_test.js[----------][ RUN ] GetSomeWordsTest.ReturnsCorrectWords[ OK ] GetSomeWordsTest.ReturnsCorrectWords (3 ms)[----------][ PASSED ] 成功 ふう
  9. 9. 結論● ブラウザなしで実行できる● 実行が非常に早い● →TDDのリズムが実現できる● →CIにも組み込める● 他のフレームワークと違ってJUnitに近いので 使いやすい● スマートフォンHTML5+JavaScriptでも使えそ う

×