About Me (梅澤真史) Site Map Blog (mirror) HP RSS |
26 October 2006[BDD][Smalltalk] sSpec面白いですSqueak-Dev経由でDave AstelさんのsSpecを知りました。BDD(Behavior Driven Development)をするためのSUnit拡張、もしくはBDDに特化したSmalltalk内部DSLといっても良いでしょう。 5 should not be a kind of: String. "5はStringの一種であってはならない" #(1 2 3) should respond to: #size. "#(1 2 3)は#sizeに答えられるべき" 3.3 should be within: 0.5 of: 3.0. "3.3は3.0から0.5以内にある" などと、実に自然に表明のコードを書くことができます。コードということを忘れるくらいですね。静的な言語ではこうはいきませんよ。 テスト用のmockも非常に簡単に書けます。 mock := Mock named: 'Test Mock'. "'Test Mock'というmock作成" (mock shouldReceive: #reverse:) "mockは#reverse:に答えるべきで" withAll: #('hello'); "引数は#('hello')" andReturn: 'olleh'. "そのときに'olleh'を返す" TestCaseでテストするときはこんな感じです。 self should: [(mock reverse: 'hello') = 'olleh']. もともとAmbrai Smalltalkで作っていたというところがシブイですね。次にVisualWorksに移植され、先日Squeakにやってきました。 世の中、まだまだ未知のSmalltalkerがいます。Squeakのみをwatchしているだけでは、いかんですね。 Last modified 26 October 2006 at 11:06 pm by ume |