2
我有一个asp.net mvc应用程序,它使用默认的用户数据库。这一切都很好,但我想为它创建一些测试。我有一个测试项目,我马上偶然发现了一个异常数据库连接测试失败
The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.
但连接字符串可以正常使用(至少在MVC项目的web.config)。我的实体DB访问逻辑构造函数抛出异常
public ASPNETDBEntities() :
base("name=ASPNETDBEntities", "ASPNETDBEntities")
{
this.OnContextCreated();
}
任何想法? 在此先感谢。
如果是第二段中的场景,上下文实际上被嘲弄,但是您想要利用模拟对象中的基础对象上下文的属性,该怎么办?你可以在app.config中放置一个模拟连接字符串吗? – devlord 2013-10-17 00:09:21
@lorddev:我不太清楚你想描述什么样的场景,但是如果你不能发送一个“普通”的模拟对象,配置为当你与它交互时返回你期望的任何对象,那么你可能还没有实现你的图层的清晰分离 - 换句话说,你应该考虑重构你的代码,以便更容易测试。 – 2013-10-20 19:35:46
我希望能够在断开的上下文模拟中访问ObjectStateManager。发现它是内置于EF中的,并且取决于实际的ObjectContext,如果没有有效的EF连接字符串,则无法创建该ObjectContext。 – devlord 2013-10-21 19:25:58