我有一个访问数据库并向其添加数据的WCF服务。 现在,我想进行一些集成和/或系统测试(自动化)。
我该怎么做?
我必须访问数据库,加载初始数据,调用服务,然后验证预期的数据是否实际加载到表中。
你有什么策略可以推荐吗?
我正在使用WCF,实体框架,SQL Server,MSTests。
答案 0 :(得分:1)
如果您不介意您的测试项目依赖于实体框架,那么我将如何处理此问题。
您还应该考虑使用基于文件的轻量级/内存数据库(如SQLite)来完成此任务。实现此目的的一种简单方法是使用EF从数据库生成模型,然后使用“从模型更新数据库”工具生成将在SQLite实例中创建相应表和约束的SQL。这意味着不存在在主/ dev数据库中放置数据的风险以及可能更快的测试。
关于步骤3和6,有些人会主张使用MSTest内置的设置/清理/拆卸功能。我通常不会开始使用这些,直到我看到他们帮助减少代码重复,因为在我看来他们使测试不那么清晰和可读,但这是个人的事情。