Frage

Wer weiß, wie zu Unit-Test SiteMapNode? Wir bauen einige benutzerdefinierte Steuerelemente für die Navigation, die mit benutzerdefinierten Attributen ungeordnete HTML-Listen von Website-Karten macht.

Ich versuche, einen Test ersten Ansatz zu folgen, aber mir festgestellt, dass SiteMapNode interne Abhängigkeiten auf Httpcontext hat. Zu überqueren Datei die Site-Map er besteht darauf, einen virtuellen Pfad über die Verwendung der Site-Map-Datei zu finden.

Ich habe eine Sitemap erstellen, die ich gegen testen möchte, aber ich will nicht meine Einheit Testumgebung in Web-Projekt (!)

erstellen

Irgendwelche Vorschläge? Verspottung? Überschreiben der entsprechenden Mitglieder?

War es hilfreich?

Lösung

Eine ziemlich langweilig Frage, also keine Überraschung, es keine Antwort bekommen hat! Für alle anderen, die über dieses Problem stolpern kann, hier ist meine bevorzugte Lösung:

Ich habe den besten Weg gefunden, dies zu umgehen ist, die physische Seite der Karte in ein XML-Dokument zu laden. Ich habe dann eine NavigationNodeFactory, die validiert und baut meinen eigenen Verbund NavigationNode Baum aus dem XML-Dokument.

Meine NavigationNode Klasse wird als eigenwillig wie Ich mag und umrundet die Fragen, die ich mit SiteMap und Sitemap, nämlich schlechte Testbarkeit für Implementierer gefunden.

Andere Tipps

Ich denke, das Problem aus Ihrer Beschreibung, dass gewesen sein mag, Sie versuchen, zu Test zuerst ein bereits bestehenden Klasse -. Die SiteMapNode

In Kürze erhalten Sie wollen die Testen verwenden der Sitemap-Knoten in Ihrer Anwendung, so würde ich raten, dass, wenn Sie Aktionen auf der SiteMapNode Klasse durchführen möchten, wickeln diese mit einem Zwischen ISiteMapProvider oder ähnlich zusammenfassung Ihrer eigenen machen und haben Ihre benutzerdefinierten Navigationstasten mit diesem in Wechselwirkung treten.

Sie können dann eine SiteMapNodeProvider zur Laufzeit haben, die für die Operationen in SiteMapNode Anrufe und eine StubbedSiteMapProvider für die Komponententests, die in der Testwerte zu den Custom Controls übergeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top