NMockとインタフェース
先日NUnitで苦戦してしまいましたが,NMockはまったく問題なく動かすことが出来ました.昨日はNWikiを教科書代わりにいろいろ動かしてみて,いまでは大体指が覚えたかな?ってところ.とても便利ですね.
NMockでモックオブジェクトを作成するためには,本来のモックでないクラスが,とあるインタフェースを継承(実装)している必要があります.で,モックオブジェクトはそのインタフェースをもとに動的に作成することになります.
なので,とあるクラスをテストファーストで実装する場合,
- 作ろうとしているクラス(対象クラス)を抽象化したインタフェースを抽出
- インタフェースから対象クラスの外枠を作成(実装はまだ)
- テストクラス作成→NUnit→レッドバー
- 対象クラスの実装→グリーンバー
という感じになるのでしょう.ということは,TDD(Test Driven Development)は実装レベルではIDD(Interface Driven Development)なんだ,って考えてもよいような気がしてきました.そしてこの考え方(パラダイム)はそのままDIコンテナにも引き継がれるのでしょう.
いまの仕事が終わったら,次はいよいよDIコンテナかなー?やっぱりFactoryクラスを作って依存性を手作業で注入するのはめんどくさい.DIコンテナ+設定ファイルで楽したいと思います.ちなみにSeasar2の新しいのは,設定ファイルすらなくしてしまうらしい.Less ConfigurationとかConvention over Configurationとか……すごいなー.ぼーっとしてるとあっという間に取り残されてしまう(というか完全に取り残されている).まっ少しずつ差を詰めていくしかないのだけれど.