模拟错误的连接字符串

时间:2016-07-10 14:48:01

标签: c# entity-framework testing mocking moq

我正在写一些测试。我在嘲笑实体框架。昨天工作正常,我几乎可以肯定我昨天没有修改任何东西。 在我的测试项目的app.config中,我有这个连接字符串

<connectionStrings>
  <add name="PublicAreaContext"
      providerName="System.Data.SqlClient" connectionString="Server=.\SQLSERVER; ..." />
</connectionStrings>

现在我模拟我的实体框架上下文:

var mockContext = new Mock<PublicAreaContext>() { CallBase = true };
... // all my entities mocked
mockContext.Setup(x => x.SaveChanges()).Returns(1);

现在,当我开始测试时出现问题,并且上下文似乎是使用错误的连接字符串

创建的

enter image description here

我不明白连接字符串的位置...我在解决方案SQLEXPRESS中寻找它并且我找不到任何东西。在我的服务器(SQLSERVER)中,我可以找到一个名为Castle.Proxy.PublicAreaContext的数据库。我认为是昨天一切正常的数据库。

您能告诉我可能出现的问题或如何正确设置连接字符串?

谢谢

1 个答案:

答案 0 :(得分:0)

我已经解决了......

我认为当我模拟上下文时,上下文会更改其名称...所以找不到connectionString ... 我已经更改了我的上下文,添加了以下构造函数:

public partial class PublicAreaContext : DbContext, IDataContext
{
    public PublicAreaContext() 
        : base("PublicAreaContext") //Here go the name of connection string
    {

    }

    ...
}