1

メインの Silverlight ビジネス アプリには、ユーザー ロールに基づいて表示および/または有効化できる多くのコントロールがあります (たとえば、管理者ロールの場合にのみ表示される管理者メニュー リンク)。コンバーターを介してその可視性を制御します。

私は単体テストを書き始めたばかりで、さまざまな役割に基づいてこれらのコントロールの可視性をテストできるようにしたいと考えています (そこにバグがあれば非常に悪いことです)。ただし、MVVM パターンを使用しており、コントロールに名前が付けられていないため、どうすればよいかわかりません。何かご意見は?

4

2 に答える 2

2

これはまさにViewModelの目的です。ビューモデルを簡単にテストできるはずです(あなたの場合、正しいロールをビューに公開しているかどうかを推測します)。また、コンバーターは単なる通常のクラスであるため、同様にテストする必要があります。

単体テストに関して言えば、実行するタスクは 2 つだけです。

  1. ビュー モデルが正しいデータを公開しているかどうかをテストする
  2. コンバーターがロールを可視性に正しく変換するかどうかをテストする

ここで単体テストは終了です。これらのテストにより、ビューに適切なデータが供給され、計画どおりにレンダリングされることが保証されます。それができるかどうかは別のことですが、それは単体テストの範囲外です。最終テストは、受け入れテスト、品質保証、自動化/スクリプト化された UI テスト、そして多くの場合、人間による検証に属します。

于 2012-04-13T14:37:55.710 に答える
0

名前付けコントロールが MVVM を壊すとは思いません。それらに名前を付けることに根本的に反対する場合は、おそらく VisualTreeHelper を使用してコントロール ツリーをたどり、関心のあるコントロールを見つけることができます。

Moq を使用してビューモデルをモックし、特定のロールをシミュレートし、Microsoft の Silverlight テスト フレームワークを使用してテストを実行できます。

于 2012-04-13T14:35:30.250 に答える