编写针对树视图的单元测试

时间:2012-04-20 16:11:23

标签: c# silverlight unit-testing tdd

我在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

有没有办法测试这种方法?

2 个答案:

答案 0 :(得分:0)

谷歌搜索有关TreeView我发现其他人以编程方式选择项目时遇到问题。我发现this,但不确定它是否有帮助。

答案 1 :(得分:-1)

单元测试通常用于测试单个代码单元,它是单一功能,主要用于确认业务逻辑。

有基于UI的测试框架,您可能需要研究它。或者您可以使用自动化UI测试框架,如ROBOT。

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