Que vous utilisiez Test du système de l'équipe o NUnit Pour les tests, la meilleure pratique consiste à créer une bibliothèque de classes distincte pour vos tests. Il suffit d'ajouter un App.config à votre projet de test pour qu'il soit automatiquement copié dans votre dossier bin lors de la compilation. .
Si votre code dépend de tests de configuration spécifiques, le tout premier test que j'écrirais validerait que le fichier de configuration est disponible ( pour que je sache que je ne suis pas fou. ) :
<configuration>
<appSettings>
<add key="TestValue" value="true" />
</appSettings>
</configuration>
Et le test :
[TestFixture]
public class GeneralFixture
{
[Test]
public void VerifyAppDomainHasConfigurationSettings()
{
string value = ConfigurationManager.AppSettings["TestValue"];
Assert.IsFalse(String.IsNullOrEmpty(value), "No App.Config found.");
}
}
Idéalement, vous devriez écrire du code de telle sorte que vos objets de configuration soient passés dans vos classes. Cela permet non seulement de s'affranchir du problème des fichiers de configuration, mais aussi d'écrire des tests pour différents scénarios de configuration.
public class MyObject
{
public void Configure(MyConfigurationObject config)
{
_enabled = config.Enabled;
}
public string Foo()
{
if (_enabled)
{
return "foo!";
}
return String.Empty;
}
private bool _enabled;
}
[TestFixture]
public class MyObjectTestFixture
{
[Test]
public void CanInitializeWithProperConfig()
{
MyConfigurationObject config = new MyConfigurationObject();
config.Enabled = true;
MyObject myObj = new MyObject();
myObj.Configure(config);
Assert.AreEqual("foo!", myObj.Foo());
}
}