ich ein Tier-Architektur-Programm mache - asp - dieWie wird der Unit-Testfall für die C# -Bibliothek aufgerufen?
BAL hat - Business-Zugriffslogik Bibliothek,
DAL - Datenzugriffslogik - Bibliothek,
Einstellungen - eine Bibliothek,
und die Hauptanwendung - ausführbar .net Webformular.
Jetzt habe ich einen Unit-Test-Fall geschrieben, um die Einstellungsbibliothek zu testen - diese Bibliothek liest nur die Verbindungszeichenfolge aus der Hauptanwendung web.config
.
Wenn ich Testfall aufrufen, wird die Verbindungszeichenfolge nicht gelesen. Was mache ich hier falsch?
web.config aus der ausführbaren Projekt -
<connectionStrings>
<!-- DataSource is SQLEXPRESS and Catalog is DBNAME-->
<add name="SqlCon" connectionString="Data Source=SHREYAS-PC\SQLEXPRESS;Initial Catalog=SchoolManagementDb;Integrated Security=true"/>
</connectionStrings>
Einstellungen Bibliothek -
namespace Settings
{
public class Settings
{
public static string ConnectionString()
{
try
{
string Con = ConfigurationManager.ConnectionStrings["SqlCon"].ToString();
return Con;
}
catch(Exception ex)
{
throw;
}
}
}
}
Das Gerät Testfall -
[TestClass]
public class UnitTestSettings
{
[TestMethod]
public void TestMethod1()
{
string con = Settings.Settings.ConnectionString();
Console.WriteLine(con);
}
}
Leider, wenn ich die leite Unit-Test-Fall, die ConnectionString-Rückgabe ist NULL, während, wenn ich die gesamte Anwendung ausführen, bekomme ich die Ergebnisse Ich wünsche mir. Fehle ich hier irgendein Konzept?
dann wie kann ich das testen? –
Oder Sie können Ihren Einstellungsleser überladen, damit Sie einen Verweis auf ein externes Konfigurations- oder Einstellungsobjekt übergeben können. –
Die Funktionalität Ihrer Settings-Klasse besteht darin, Konfigurationswerte aus der Konfigurationsdatei zu lesen. Und Ihre Komponententests überprüfen diese Funktionalität. Mit Komponententest können Sie die Einstellungen von web.config nicht lesen. Sie müssen also im Testprojekt app.config hinzufügen und die Verbindungszeichenfolge dort platzieren. Wenn Sie den Komponententest ausführen, sollte er in der Lage sein, den Wert aus der app.config des Testprojekts zu lesen. So testen Sie es. –