0

SilverlightアプリケーションのviewModelに次のようなものがあります。

 public void OnSelectedItemChanged(TreeView treeView)
    {
        if (treeView.SelectedItem is Customer)
        {
            var customer = treeView.SelectedItem as Customer;

            if (customer.IsSpecial)
            {
                treeView.SelectItem(specialNode);
              ...
        }
    }

ロジックは気にしないでください(デモンストレーション専用です)。アプリケーションは正常に動作します。私の質問は、このメソッドの単体テストを作成することを厳密に実現しています。SelectedItemやSelectItemなどを正常に実行できるテストハーネスを作成できないようです。言い換えれば、私は私のセットアップでこのようなことをする必要があるでしょう。

 TreeView tv = new TreeView();
 var item = new TreeViewItem();

 tv.ItemsSource = new List<object> { item };
 tv.SelectItem(item); // does not work

この方法をテストする方法はありますか?

4

1 に答える 1

-1

単体テストは通常​​、単一の機能であり、主にビジネスロジックの確認に役立つ単一のコードユニットをテストするためのものです。

利用可能なUIベースのテストフレームワークがあります。それを調べてみてください。または、ROBOTなどの自動UIテストフレームワークを使用することもできます。

ツリービューをユニットテストしようとしている場合、それは正しくモジュール化されていないコードの兆候である可能性があると言って、別の関数でユニットテストベースのコードを取り出し、その関数をユニットテストできるはずです。それが不可能な場合は、おそらく単体テストは必要ありません。

于 2012-04-20T16:20:01.053 に答える