2007-01-31

λ [.NET] カスタムコントロールのテスト書き中

現在部品としてはITemplate を使うのはややこしすぎる。 Control のかたまりを生成するカスタムコントロールを作成しているところ。 今回デザイナーから「表示したいHTML」が先に来てしまっているので、 そのHTMLの断片を出力して欲しいなあという Assert.Equal を書きたくなるというのは自然な流れ。

でもそうするにはPageを用意…するにはHttpContextが…やってられーん。やっぱりそうしたかったら NUnitAsp か?

カスタムコントロールは機能としては、Controls を作成するだけで最終的なHTML(プレゼンテーション)には責任を持たない! 表示する部分は .NET Framework が用意しているコントロールを組み合わせているんだから、 そいつらへのちょっかいはMergeStyleでマージされるプロパティとして持つようにした。

テストの内容は

  • Controls の中に追加されたコントロールが目的のクラスに沿った順番で入っているか
  • LiteralControl とかだったら Text プロパティはチェック。または ID プロパティをチェックして、正しいインスタンスかどうかをみる。(IDプロパティについては、仕様化すべきところであろう)
  • Style については、CssClassが追加されれば良しとする。

最終的な見た目は、HTMLの断片ではなくて本当に見た目だから人間がテストするしかないし、これでよしとする。 画像の中身が違うとかは分からないしね。

[]