繁体   English   中英

用假数据进行WCF服务测试

[英]wcf service testing with fake data

我已经在寻找解决方案已有几天了,可以找到任何有助于解决我的问题的方法。 我有一个WCF服务,对此我必须进行一些单元测试。 问题在于服务以这种方式从数据库中获取数据:

using (var context = new MyProjectEntities())
{
  //here goes the actions
}

我猜MyProjectEntities是从edmx模型自动生成的。(首先是数据库)因此,它从数据库中获取所有数据并对其进行操作。 我的问题是:用虚假数据而不是数据库中的数据来提供服务的正确方法是什么?

最简单的方法是使用实​​时数据库。 这不太灵活,因为您每次运行都需要一个处于固定初始状态的新数据库,而且多个开发人员不能同时使用同一数据库。

我们在公司的工作是:使用单文件数据库,即SQL Server CE。 如果您的代码与数据库引擎无关,那么这完全可以工作,只需更改连接字符串,甚至可以通过将模板数据文件复制到正确的位置来将数据库置于固定状态。 这不是一个真正孤立的单元测试,但是实现起来非常简单,没有上述问题,最终您基本上可以得到所需的东西。 如果您的代码是数据库引擎相关的,那么现在您还有另一个理由使用诸如NHibernate或Entity Framework之类的ORM解决方案。

最好,最灵活,也最复杂的解决方案是使用依赖项注入或模拟框架。 这是教科书,其中有大量的文献资料,它将为您提供所有的灵活性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM