如何对WPF StyleSelector进行单元测试?

时间:2010-07-29 16:42:45

标签: wpf unit-testing data-binding

我无法找到对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 Mocks作为我的模拟框架,但如果需要,我不反对手工制作假货。

1 个答案:

答案 0 :(得分:1)

您显然处于View(而不是Model或ViewModel)测试领域。

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