Baik Anda menggunakan Tes Sistem Tim atau NUnit , praktik terbaik adalah membuat Perpustakaan Kelas terpisah untuk tes Anda. Cukup menambahkan App.config ke proyek Uji Anda akan secara otomatis disalin ke folder bin Anda ketika Anda kompilasi .
Jika kode Anda bergantung pada tes konfigurasi tertentu, tes pertama yang saya tulis akan memvalidasi bahwa file konfigurasi tersedia ( sehingga saya tahu saya tidak gila ):
<configuration>
<appSettings>
<add key="TestValue" value="true" />
</appSettings>
</configuration>
Dan tesnya:
[TestFixture]
public class GeneralFixture
{
[Test]
public void VerifyAppDomainHasConfigurationSettings()
{
string value = ConfigurationManager.AppSettings["TestValue"];
Assert.IsFalse(String.IsNullOrEmpty(value), "No App.Config found.");
}
}
Idealnya, Anda harus menulis kode sedemikian rupa sehingga objek konfigurasi Anda diteruskan ke kelas Anda. Ini tidak hanya memisahkan Anda dari masalah file konfigurasi, tetapi juga memungkinkan Anda untuk menulis tes untuk berbagai skenario konfigurasi.
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());
}
}