Tests: ich *will* um zu testen, web.config

Ich will ein paar unit-Tests auf einem meiner Projekte. Dies ist ein web-Projekt, und es werden nur eine kopieren Sie dieses Programm laufen, abgesehen von der Entwicklung kopiert.

Möchte ich einige schreiben von unit-tests, die web.config. Ich verstehe, dass normalerweise ein tester würde die stub diese externe Abhängigkeit, weil er will, um den code zu testen, ohne den test je nach web.config holding bestimmte Werte.

Jedoch die web.config in meinem Projekt soll halt immer bestimmte Werte und ich wollen ein Gerät testen, dass wird scheitern, wenn Sie ungültige Werte. Zum Beispiel, einer der Werte ist eine SQL-Verbindungszeichenfolge.

Möchte ich schreiben einen test, Lesen Sie die Verbindungszeichenfolge aus der web.config. Ich Stelle mir vor, dass der test könnte eine Verbindung zu einem server mit dem connection-string und vielleicht führen Sie ein sehr einfaches Kommando wie SELECT system_user;. Wenn der Befehl erfolgreich ausgeführt wird und gibt etwas, das der test bestanden wird. Sonst scheitert Sie. Ich möchte den connection string zu Lesen, von der web.config in das Projekt, das ich Teste.

Natürlich, die ConfigurationManager wird normalerweise nicht Aussehen für ein web.config in einem anderen Projekt. Ich könnte manuell kopieren Sie die web.config aus dem ursprünglichen Projekt test Projekt, aber ich würde zu tun haben, dass vor jedem test und es gibt keine Weise, die ich zählen konnte, auf jemand anderes zu tun.

Wie mache ich mein test-Projekt Lesen Sie die web.config aus einem anderen Projekt?

  • Gibt es eine bessere Lösung als das kopieren der config auf das test-Projekt, goto vorhandenes Element hinzufügen und wählen Sie die web -.config anstelle des Klickens auf die Schaltfläche hinzufügen klicken Sie auf den Pfeil daneben und wählen Sie als link. Jetzt Ihre test-Projekt hat die live-Kopie der web.config als ein symbolischer link ist.
  • Chris, ich versuchte Ihren Vorschlag und so wie ich vermutete, es macht eine Kopie der Datei in das Verzeichnis für die unit-test-Projekt; das ist es, was ich vermeiden wollte.
  • Was ist dein end-game hier? "So, Dass..." Teil der use-case. Können Sie setzen eine Menge Anstrengungen in die Prüfung etwas, was komplett überflüssig ist, weil es nicht kaufen man Vertrauen. Die config-Datei ist dynamisch, indem es die Natur, und die Aktualisierung kann es eine Forderung on-the-fly. Allerdings haben Sie die tests nun scheitern, weil Sie erwartet hatten, dass einige Wert. Vielleicht, wenn Sie erklären könnten, "Warum" Sie dies tun, könnten wir besser helfen, einen plan auszuarbeiten, der für die Prüfung.
  • Ja, Josh, die web.config - Datei ist dynamisch. Es wird jedoch nur eine Instanz dieser Anwendung läuft in der Produktion. Wünsche ich mir einen unit test ruft die Verbindungszeichenfolge aus der web.config und überprüft, ob es gültig ist. Ja, die web.config ist technisch dynamische, aber in der Praxis nicht verändert werden, sobald es bereitgestellt wird.
  • Es macht eine Kopie von der config, es erstellt einen symbolischen link. Dies bedeutet, dass Ihre test-Projekt sieht die Datei genau so, als ob es war dort, aber nicht physisch im Projekt vorhanden ist. (es ist allerdings kopiert das build-Verzeichnis nach dem compilieren)
  • Danke Chris, ich sehe, dass ich verpasste die "add as link"Teil

Schreibe einen Kommentar