针对树视图编写单元测试

本文关键字:单元测试 视图 | 更新日期: 2023-09-27 18:31:44

我在 silverlight 应用程序的 viewModel 中有类似以下内容的内容:

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

不要介意逻辑(仅用于演示)。该应用程序工作正常。我的问题严格实现为此方法编写单元测试。我似乎无法创建一个测试工具来使用我可以成功执行诸如"选定项"或"选择项"之类的操作。换句话说,我需要在我的设置中做这样的事情。

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

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

针对树视图编写单元测试

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

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

也就是说,如果您尝试对树视图进行单元测试,

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