2010-07-29 1 views
0

Je n'arrive pas à trouver un moyen de tester un sélecteur de style WPF.Comment puis-je tester un WPF StyleSelector?

Mon sélecteur ressemble:

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; 
    } 
} 

Je dois penser qu'il y aurait un moyen d'imiter le processus de liaison, puis affirmer sur le style qui sort. Des idées, ou est-ce un domaine de WPF qui ne peut pas être truqué? J'utilise Rhino Mocks pour mon cadre de moquerie, mais je ne suis pas contre les contrefaçons à la main si nécessaire.

Répondre

1

Vous êtes clairement dans le domaine des tests View (par opposition à Model ou ViewModel).

Le moyen le plus simple de vérifier ce comportement est de tester les unités GUI avec un outil tel que IcuTest (http://IcuTest.com). Vous créez simplement une liste avec quelques éléments, l'affichez et vérifiez qu'elle est en alternance.

+0

Cela pourrait très bien finir par être la réponse acceptée, mais je garde l'espoir pour un moment encore qu'il n'y a qu'une solution de test de code. Si je ne peux pas tester ce processus via le code uniquement, cela signifie que Microsoft ne peut pas non plus. Ce serait malheureux, mais je suppose pas trop difficile à croire. –