2010-09-30 24 views
2

J'essaie d'utiliser MSTest pour écrire des tests unitaires pour les méthodes de ma classe MainWindow dans mon application WPF. Cependant, je reçois l'exception suivante:WPF - XamlParseException lorsque la méthode de test unitaire dans la classe Window

System.Windows.Markup.XamlParseException: 'Apporter de la valeur sur 'System.Windows.StaticResourceExtension' a jeté une exception.' Numéro de ligne '127' et position de ligne '32'. ---> System.Exception: Impossible de trouver la ressource nommée 'verticalLineStyle'. Les noms de ressources sont sensibles à la casse.

verticalLineStyle se trouve dans une ResourceDictionary qui est inclus dans App.xaml. Je n'ai pas besoin de ce style pour tester la méthode que j'essaie de tester, mais je ne peux pas dépasser cela. Je suis en train de créer une nouvelle instance de MainWindow dans mon test unitaire et d'essayer d'appeler une méthode d'instance sur ce point. L'exception se produit lorsque j'essaie de créer l'instance de MainWindow. MainWindow est défini comme public partial class MainWindow : Window.

Comment puis-je me débarrasser de cette erreur? Existe-t-il un moyen préféré de tester les méthodes unitaires dans les fenêtres des applications WPF?

Répondre

0

Le problème est que le test n'a pas accès à App.xaml lorsque l'application n'est pas démarrée. Vous pourriez vouloir regarder dans TestApi pour tout ce qui concerne le test des visuels WPF (link)

Espérons que cela aide!

3
Application.LoadComponent(
    new Uri("/MyAppAssemblyName;component/App.xaml", UriKind.Relative)); 

Cela m'a aidé.

+0

Dans les applications UWP pour Win 10, cette surcharge n'existe pas. Quelqu'un sait a) ce qu'il faut passer comme premier paramètre et b) ce que l'URI serait pour App.xaml d'un UWP? – Nilzor