« [イベント] 告知 - "TDD" Boot Camp ( 12/19, 青山 ) | トップページ | [コラム] VS2010b2J (MSTest) で、 Silverlight 3 のロジックを TDD する »

2009年12月11日 (金)

[コラム] 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 する »

*コラム」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [コラム] Silverlight 2 / 3 でも、ユニットテスト出来る:

« [イベント] 告知 - "TDD" Boot Camp ( 12/19, 青山 ) | トップページ | [コラム] VS2010b2J (MSTest) で、 Silverlight 3 のロジックを TDD する »