Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对WPF样式选择器进行单元测试?_Wpf_Unit Testing_Data Binding - Fatal编程技术网

如何对WPF样式选择器进行单元测试?

如何对WPF样式选择器进行单元测试?,wpf,unit-testing,data-binding,Wpf,Unit Testing,Data Binding,我很难找到对WPF样式选择器进行单元测试的方法 我的选择器看起来像: public class ListViewItemStyleSelector : StyleSelector { public override Style SelectStyle(object item, DependencyObject container) { var listView = ItemsControl.ItemsControlFromItemContainer(contain

我很难找到对WPF样式选择器进行单元测试的方法

我的选择器看起来像:

public class ListViewItemStyleSelector : StyleSelector
{
    public override Style SelectStyle(object item, DependencyObject container)
    {
        var listView = ItemsControl.ItemsControlFromItemContainer(container) as ListView;

        Style style;

        var index = listView.ItemContainerGenerator.IndexFromContainer(container);

        if (index % 2 == 0)
            style = (Style)listView.FindResource("listViewItemStyle");
        else
            style = (Style)listView.FindResource("listViewAlternatingItemStyle");

        return style;
    }
}
我不得不认为有一种方法可以模仿绑定过程,然后对生成的样式进行断言。有什么想法吗,或者这是WPF的一个不能伪造的领域


我使用Rhino Mock作为模拟框架,但如果需要,我并不反对手工制作赝品。

您显然处于视图(与Model或ViewModel相反)测试领域


验证此行为的最简单方法是使用诸如IcuTest()之类的工具进行GUI单元测试。您只需创建一个包含几个项目的列表,显示它,并验证它是否是交替的。

这很可能最终成为公认的答案,但我仍希望有一个纯代码的测试解决方案。如果我不能只通过代码来测试这个过程,那就意味着微软也不能。那将是不幸的,但我想不太难相信。