如何对具有 LTS Datacontext 的代码进行单元测试。我在测试时出错,我有很多数据上下文,手动添加连接字符串很痛苦,任何建议。
问问题
123 次
1 回答
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";
}
}
所以现在当我运行我的测试时,我现在可以将我的假数据层对象传递给我的业务逻辑,从这里它将调用假逻辑并返回一个默认结果。
现在,当然您不会在这里使用真实数据。但是,如果您使用真实有效/无效数据设置假对象,您可以通过这种方式测试您的业务逻辑,而无需连接到数据库。
希望这可以帮助。如果您需要澄清任何事情,请告诉我。
于 2009-05-19T16:13:58.637 回答