none
Unit Test Verständnisfragen RRS feed

  • Frage

  • Hallo allerseits,

    habe mich die letzten tagen mit Unit Tests beschäftigt und hätte dazu einpaar anfänger Fragen.

    Vorher hier mal eine einfache Methode zur Veranschaulichung meines Problems.
    Diese und viele andere Core-Methode Methoden befinden sich in einer eigener Klasse (Bsp: AdminKlasse)

    string inhalt = null; using (StreamReader SR = new StreamReader(System.Web.HttpContext.Current.Server.MapPath("/src/data/" + file))) { inhalt = SR.ReadToEnd(); } string[] pars = inhalt.Split(';'); SqlCommand cmd = new SqlCommand("spAddTest"); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@id", pars[0]); cmd.Parameters.AddWithValue("@val", pars[1]); cmd.Connection = new SqlConnection(); cmd.Connection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings[pars[2]].ConnectionString; ...

    return result > 0


    Die Methode wird von vielen anderen Stellen und Klassen aufgerufen und liest von unterschiedlichen Dateien bestimmte Werte aus und fügt diese dann in die DB. Soweit funktioniert das gut.

    Beim debuggen im Unit Test, ist der "HttpContext.Current" null (da iis nicht startet) und auch der ConnectioString in der ProjName.dll.config Datei abfragbar.
    Obwohl im bin-Verzeichniss, in der Datei "ProjName.dll.config" der ConStr vorhanden ist.


    Eigentlich habe ich mir erwartet das ich die Methoden auf diese Art und Weise testen kann.

    Bsp:
    [TestMethod]
    [TestCategory("Core")]
    public void can_read_and_add_in_to_db()
    {
        Assert.IsTrue(AdminKlasse.readAndAddInToDB("Test.txt"), "Test file missing");
    }

    Doch leider geht das nicht weil in diesem Fall zu einem der "HttpContext.Current" null ist und zu anderen der ConnectionString nicht abgefragt werden kann.

    Muss ich hier im Unit Test eigene Abläufe schreiben, Bsp die Pfade absolut, den ConString im unit Test deinieren, Abfragen und Prüfungen im Unit Test durchführen?

    Wäre für jede Art von Unterstützung sowie Hilfe und Codesnipp, Erklärungen und Links zu deutschen Unit Test Seiten sehr dankbar.

    Lg
    Ge.Ri

    Samstag, 11. Februar 2017 08:47

Alle Antworten