如何在单元测试中使连接字符串成为常量

本文关键字:字符串 常量 连接 单元测试 | 更新日期: 2023-09-27 18:33:04

我有一个动态连接字符串生成器,因为我需要为每个客户使用不同的数据库。

当我对此进行测试时,我想模拟动态连接字符串生成器以返回特定的客户字符串对象。我遇到的问题是 C# 在连接字符串上不断出错作为常量。

 private const string connectionString = 
 @"metadata=res://Data/CustomerModel.csdl|res://Data/CustomerModel.ssdl|
 res://Data/CustomerModel.msl;provider=System.Data.SqlClient;
 provider connection string=/""Data Source=MyDB;Initial Catalog=MyCustomer;
 User ID=SomeUser;Password=SomePassword"

当前错误为:

 An exception of type 'System.ArgumentException' occurred in EntityFramework.dll but    
 was not handled in user code
 Additional information: Keyword not supported: 'initial catalog'.

我知道这是 C# 存储连接字符串的方式,我不知道如何修复它。我不想使用我拥有的连接字符串生成器服务,因为这样我的测试将不仅仅依赖于这个"单元"。我想伪造连接字符串生成器以返回该连接字符串。

有什么建议吗?

如何在单元测试中使连接字符串成为常量

一种选择是使用 EntityConnectionStringBuilder 并手动构建它。

http://msdn.microsoft.com/en-us/library/vstudio/bb738533(v=vs.100).aspx