Cho dù bạn đang sử dụng Team System Test hay NUnit , cách tốt nhất là tạo Thư viện lớp riêng cho các bài kiểm tra của bạn. Chỉ cần thêm một App.config vào dự án thử nghiệm của bạn sẽ tự động được sao chép vào thư mục bin của bạn khi bạn biên dịch .
Nếu mã của bạn phụ thuộc vào các kiểm tra cấu hình cụ thể, thử nghiệm đầu tiên tôi sẽ viết xác nhận rằng tệp cấu hình có sẵn ( để tôi biết tôi không điên ):
<configuration>
<appSettings>
<add key="TestValue" value="true" />
</appSettings>
</configuration>
Và bài kiểm tra:
[TestFixture]
public class GeneralFixture
{
[Test]
public void VerifyAppDomainHasConfigurationSettings()
{
string value = ConfigurationManager.AppSettings["TestValue"];
Assert.IsFalse(String.IsNullOrEmpty(value), "No App.Config found.");
}
}
Tốt nhất, bạn nên viết mã sao cho các đối tượng cấu hình của bạn được truyền vào các lớp của bạn. Điều này không chỉ tách bạn khỏi vấn đề tập tin cấu hình mà còn cho phép bạn viết các bài kiểm tra cho các kịch bản cấu hình khác nhau.
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());
}
}