我如何单元测试我的代码,有LTS的DataContext。我得到误差测试时,我有很多Datacontexts的和手动添加连接字符串是一种痛苦,任何建议。

有帮助吗?

解决方案

好了,我的方式做到这一点是如下所示:

我的数据层具有接口,例如,如下所示:

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";
      }

}

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

现在,理所当然你不会在这里真实数据的工作。但是,如果有真正的有效/无效数据您设置假的对象,你可以测试你的业务逻辑这种方式,而不必连接到数据库。

希望这有助于。让我知道如果你需要澄清什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top