测试Linq To SQL类

时间:2009-05-19 15:59:34

标签: .net unit-testing linq-to-sql datacontext

如何对具有LTS Datacontext的代码进行单元测试。我在测试时遇到错误,我有很多Datacontexts并且手动添加连接字符串很痛苦,有任何建议。

1 个答案:

答案 0 :(得分:1)

嗯,我这样做的方式如下:

我的数据层有一个界面,如下所示:

public class MyDataLayer : iMyDataLayer
{
  public string GetMyData(parameters)
  {
    return myQueryValue;
  }

}

public interface iMyDataLayer
{
  public string GetMyData(parameters);
}

现在,在我的主代码库(业务逻辑)的构造函数中,我将有一个参数传递给数据层的接口:

private iMyDataLayer DataLayer;

public class MyBusinessLogic(iMyDataLayer dataLayer)
{
   DataLayer = dayaLayer
}

public string GetMyData(parameters)
{
  return DataLayer.GetMyData(parameters)
}

有了这个,我现在可以在我的TDD项目中创建一个“虚假”数据服务:

public class FakeDataLayer : iMyDataLayer
{
      public string GetMyData(parameters)
      {
        return "Some Default Value or Object";
      }

}

所以现在当我运行我的测试时,我现在可以将我的假数据层对象传递给我的业务逻辑,从这里它将调用假逻辑并返回默认结果。

现在,授予您不会在这里使用真实数据。但是,如果使用真实有效/无效数据设置虚假对象,则可以通过这种方式测试业务逻辑,而无需连接到数据库。

希望这会有所帮助。如果您需要澄清任何事情,请告诉我。