[コラム] 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 する »
「*コラム」カテゴリの記事
- [コラム] VB2005 では InternalsVisibleTo 属性が効かない(2010.06.02)
- [コラム] 黒岩惠 「トヨタ生産方式 (TPS) と IT ソフト」 ご紹介(2010.05.16)
- [コラム] Bent Jensen 来日: アジャイル開発に適した契約 ~ ハイブリッド契約の例(2010.05.06)
- [コラム] 僕が TDD に魅かれるワケ(2010.05.04)
- [コラム] RED One, GREEN All(2010.01.26)

コメント