사용하든 팀 시스템 테스트 또는 NUnit과를 , 가장 좋은 방법은 테스트를 위해 별도의 클래스 라이브러리를 만드는 것입니다. 테스트 프로젝트에 App.config를 추가하면 컴파일 할 때 자동으로 bin 폴더에 복사됩니다 .
코드가 특정 구성 테스트에 의존하는 경우, 내가 작성하는 첫 번째 테스트는 구성 파일이 사용 가능한지 검증합니다 ( 내가 미친 것이 아니라는 것을 알 수 있습니다 ).
<configuration>
<appSettings>
<add key="TestValue" value="true" />
</appSettings>
</configuration>
그리고 테스트 :
[TestFixture]
public class GeneralFixture
{
[Test]
public void VerifyAppDomainHasConfigurationSettings()
{
string value = ConfigurationManager.AppSettings["TestValue"];
Assert.IsFalse(String.IsNullOrEmpty(value), "No App.Config found.");
}
}
이상적으로는 구성 개체가 클래스로 전달되도록 코드를 작성해야합니다. 이를 통해 구성 파일 문제와 분리 될뿐만 아니라 다양한 구성 시나리오에 대한 테스트를 작성할 수도 있습니다.
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());
}
}