[コラム] Silverlight 2 / 3 でも、ユニットテスト出来る
Silverlight の ver. 2 と 3 では、 通常の .NET Framework のアセンブリと互換性が無いとされています。 Visual Studio 上でテストプロジェクトを作って、 Silverlight のプロジェクトを参照しようとすると怒られてしまいます。 Silverlight Toolkit には単体テストフレームワークが含まれていて、 これは UI まで単体テストできる優れものですが、 いかんせん IE を起動してその上でテストを走らせる仕組みになっているので、 TDD のリズムからはほど遠いものです。
Visual Studio 組み込みのユニットテスト (MSTest) や NUnit から、 サクっと単体テストすることはできないものでしょうか…?
【 Answer 1: SilverUnit 】
Typemock Isolator (有償製品) を介してやればアクセスできるよねぇ、 という発想。 Silverlight の GUI 部品もテストできるようです。
次は英語のページです。 参考までに。
⇒ CodePlex : CThru and SilverUnit
itscodingtime: Silverlight Unit Testing
【 Answer 2: 強引にやってしまう 】
互換性の無い部分はテストしないことにすれば、 他のツールとかを使わなくても、 なんとかできちゃうはずだよね、 という発想。
Silverlight の DependencyObject を継承しているモノはダメだけど、 あとはだいたいいけるハズだよ、 と、 次の記事の筆者は言っています (真偽のほどは確かめていません)。 これも英文です。
⇒ Jason Young's Blog: MSTest and Silverlight
その他に、 コードレベルで共有する方法も考えられます。 ソースファイルを、 Silverlight のプロジェクトと、 普通のプロジェクトの両方に含めてやるわけですね。 ついつい普通のプロジェクト側でコードを書いてしまい、 Silverlight 側では使えないものを作ってしまいそうです。
※ このあたりの話題も、 ちゃんとフォローしたいところなんですが、 Silverlight 4 では互換性を持たせたと正式にアナウンスがあったので、 Visual Studio 2010 (beta) で Silverlight 4 のユニットテストする方が優先です m(_`_)m
※ (2009/12/13 追記) 「強引にやってしまう」方法を試してみたら、 SL3 も SL4 も同じようにしてユニットテストできちゃいました。 ので、 SL3 の場合を次の記事で解説しておきました。
| 固定リンク
« [イベント] 告知 - "TDD" Boot Camp ( 12/19, 青山 ) | トップページ | [コラム] VS2010b2J (MSTest) で、 Silverlight 3 のロジックを TDD する »
「*コラム」カテゴリの記事
- MSTest‐Windows ストア アプリ開発の暗黒大陸 #win8dev_jp #tddadventjp #tddnet(2013.12.13)
- TDD って何だっけ? #tddadventjp(2013.12.06)
- [コラム] テストファーストとは何か?(2012.12.24)
- [コラム] Visual Studio 11 に統合できるテスティング フレームワーク(2012.03.22)
- [コラム] TDD のパターン: Assert First(2012.02.09)
この記事へのコメントは終了しました。
コメント