Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Java scriptでTDD

928 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

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でも使えそ う

×