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 的测试框架,您可能想研究一下。或者您可以使用自动化 UI 测试框架,例如 ROBOT。

话虽如此,如果您尝试对树视图进行单元测试,那么这可能表明模块化代码不正确,您应该能够在单独的函数中取出基于单元测试的代码并对该函数进行单元测试。如果那不可能,那么您很可能不需要单元测试。

于 2012-04-20T16:20:01.053 回答