我已经设置了一个测试数据库来开始对我最近添加到的应用程序进行单元测试。它是一个 3 层设计(表示层、BOL 和 DAL),这是我第一次编写单元测试。
我决定从 BOL 开始,我认为最好的方法是将 ConnectionString(已作为共享字符串传递)替换为指向我的新测试数据库的 ConnectionString。但是,我不想更改任何生产代码。我只是希望在单元测试期间以某种方式将应用程序重定向到测试数据库。我该如何实现这一目标?
最佳答案
我通常做的是创建一个配置部分,其中包含确定要使用哪个连接字符串的功能。
这是一个基本示例:
static ConfigurationSettings
{
static String ConnectionString
{
get
{
var result = "TESTCONNECTIONSTRING";
if (ConfigurationManager.ConnectionStrings["SOMEKEY"] != null)
result = ConfigurationManager.ConnectionStrings["SOMEKEY"];
return result;
}
}
这样,我就不必担心如何连接到系统,而且您还可以在测试中重写此行为,通过添加 setter 来完成您想要的任务。
我不采用多个配置文件路线的原因是,在测试套件(例如 NUnit testrunner)中运行时我无法使用配置文件。
关于asp.net - 您将如何交换连接字符串来访问测试数据库以进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1027155/