İster Ekip Sistem Testi ister NUnit kullanıyor olun , en iyi uygulama testleriniz için ayrı bir Sınıf Kütüphanesi oluşturmaktır. Test projenize bir App.config eklediğinizde, derlediğinizde bin klasörünüze otomatik olarak kopyalanır .
Kodunuz belirli yapılandırma testlerine güveniyorsa, yazacağım ilk test, yapılandırma dosyasının kullanılabilir olduğunu doğrular ( böylece deli olmadığımı biliyorum ):
<configuration>
<appSettings>
<add key="TestValue" value="true" />
</appSettings>
</configuration>
Ve test:
[TestFixture]
public class GeneralFixture
{
[Test]
public void VerifyAppDomainHasConfigurationSettings()
{
string value = ConfigurationManager.AppSettings["TestValue"];
Assert.IsFalse(String.IsNullOrEmpty(value), "No App.Config found.");
}
}
İdeal olarak, konfigürasyon nesneleriniz sınıflarınıza geçecek şekilde kod yazmalısınız. Bu sizi yalnızca yapılandırma dosyası sorunundan ayırmakla kalmaz, aynı zamanda farklı yapılandırma senaryoları için testler yazmanıza da olanak tanır.
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());
}
}