Your SlideShare is downloading. ×
power-assert in JavaScript
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

power-assert in JavaScript

2,890

Published on

power-assert in JavaScript …

power-assert in JavaScript
Aug 21, 2013
at 10th Tokyo Node Gakuen #tng10

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

No Downloads
Views
Total Views
2,890
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
13
Comments
0
Likes
15
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 新しい テストライブラリの ご提案 (公開版) 和田 卓人 (a.k.a id:t-wada or @t_wada) Aug 21, 2013 @東京 Node 学園 #10
  • 2. 当日の講演動画のリンク http://bit.ly/1glmC2G
  • 3. 和田 卓人 id: t-wada @t_wada github: twada
  • 4. とてもニッ チなものを 作りました
  • 5. 注: 黒い画面 しか出てき ません
  • 6. 通称「きのこ本」
  • 7. •良いインタフェースとは次の2つの条件 を満たすインタフェース •正しく使用する方が操作ミスをする より簡単 •誤った使い方をすることが困難 きのこ53: 正しい使い方を簡単 に、誤った使い方を困難に
  • 8. 正しく使用する方が操作ミスを するより簡単 誤った使い方をすることが困難
  • 9. 正しく使用する方が操作ミスを するより簡単 誤った使い方をすることが困難
  • 10. デモ1
  • 11. 当日のデモ1のリンク http://bit.ly/1dNVQW0
  • 12. 字面だけでなく失敗時の 情報も重要 ふるまいがインターフェ イスに制約を与える
  • 13. assert.equal((7 - 3), 4); assert.equal((7 - 3), 4, "4でしょ"); assert#equal(actual, expected) assert#equal(actual, expected, message) Node の assert モジュール
  • 14. JUnit assertEquals(expected, actual) assertEquals(message, expected, actual) TestNG assertEquals(actual, expected) assertEquals(actual, expected, message) PHPUnit assertEquals(expected, actual) assertEquals(expected, actual, message) 他の xUnit はどうか
  • 15. どうしてこ うなった
  • 16. http://capsctrl.que.jp/kdmsnr/wiki/bliki/?Xunit
  • 17. 犯人はファウラーだった(自白済)
  • 18. 正しく使用する方が操作ミスを するより簡単 誤った使い方をすることが困難
  • 19. 間違えやすい引数は良く ない -> RSpec っぽく書け れば良い?
  • 20. デモ2
  • 21. 当日のデモ2のリンク http://bit.ly/1lA73fr
  • 22. そもそも assert の情報量が多け ればいいのでは?
  • 23. デモ3
  • 24. 当日のデモ3のリンク http://bit.ly/1pHYbSc
  • 25. 何が起こっ たんです?
  • 26. Caught: Assertion failed: assert 5 == list.max() - 1 | | | | | | 5 4 | [1, 3, 4, 5, 2] false at test.run(test.groovy:3) http://d.hatena.ne.jp/genzouw/20100121/1264080325 元ネタは Groovy
  • 27. 新しい テストライブラリの ご提案 和田 卓人 (a.k.a id:t-wada or @t_wada) Aug 21, 2013 @東京 Node 学園 #10
  • 28. power-assert js 版を作ったよ 和田 卓人 (a.k.a id:t-wada or @t_wada) Aug 21, 2013 @東京 Node 学園 #10
  • 29. https://github.com/twada/power-assert
  • 30. https://speakerdeck.com/constellation/escodegen-and-esmangle-using-mozilla-javascript-ast-as-an-ir
  • 31. https://speakerdeck.com/constellation/escodegen-and-esmangle-using-mozilla-javascript-ast-as-an-ir
  • 32. https://speakerdeck.com/michaelficarra/spidermonkey-parser-api-a-standard-for-structured-js-representations
  • 33. https://speakerdeck.com/michaelficarra/spidermonkey-parser-api-a-standard-for-structured-js-representations
  • 34. https://speakerdeck.com/michaelficarra/spidermonkey-parser-api-a-standard-for-structured-js-representations
  • 35. https://speakerdeck.com/constellation/escodegen-and-esmangle-using-mozilla-javascript-ast-as-an-ir
  • 36. https://speakerdeck.com/constellation/escodegen-and-esmangle-using-mozilla-javascript-ast-as-an-ir
  • 37. power-assert の しくみ
  • 38. instrumentor (espower-loader / grunt-espower / gulp-espower / espowerify ) jsCode
  • 39. esprima instrumentor (espower-loader / grunt-espower / gulp-espower / espowerify ) jsCode jsCode
  • 40. esprima instrumentor (espower-loader / grunt-espower / gulp-espower / espowerify ) jsCode jsAST jsCode
  • 41. espoweresprima instrumentor (espower-loader / grunt-espower / gulp-espower / espowerify ) jsCode jsAST jsAST jsCode
  • 42. espoweresprima instrumentor (espower-loader / grunt-espower / gulp-espower / espowerify ) jsCode jsAST jsAST jsAST jsCode
  • 43. espoweresprima instrumentor (espower-loader / grunt-espower / gulp-espower / espowerify ) jsCode jsAST escodegen jsAST jsAST jsAST jsCode
  • 44. espoweresprima instrumentor (espower-loader / grunt-espower / gulp-espower / espowerify ) jsCode jsAST escodegen jsAST jsAST jsAST jsCode jsCode
  • 45. espoweresprima instrumentor (espower-loader / grunt-espower / gulp-espower / espowerify ) jsCode jsAST escodegen jsAST jsAST jsAST jsCode jsCode jsCode
  • 46. empower power-assert empower enhance assert
  • 47. empower context AssertionError power-assert assert text power-assert-formatter context text Error assertion
  • 48. One more thing...
  • 49. altJS!
  • 50. 当日のデモ4のリンク http://bit.ly/1jwqQd1
  • 51. https://speakerdeck.com/constellation/escodegen-and-esmangle-using-mozilla-javascript-ast-as-an-ir
  • 52. espoweresprima instrumentor (espower-loader / grunt-espower / gulp-espower / espowerify ) jsCode jsAST escodegen jsAST jsAST jsAST jsCode jsCode jsCode
  • 53. espower coffee- script-redux custom instrumentor csCode jsAST escodegen jsAST jsAST jsAST jsCode csCode jsCode
  • 54. 取り組んだ こと
  • 55. substack pattern UMD pattern
  • 56. power-assert が もたらすもの
  • 57. 覚えることは少なく、かつ テスト失敗時の情報は多く
  • 58. 何もなければ黙るのみ 落ちるときはやかましく
  • 59. テスト書きましょう!
  • 60. ご清聴ありがとうございました
  • 61. https://github.com/twada/power-assert ご清聴ありがとうございました

×