2013-03-12 117 views
3

我有一个连接到SQL Server数据库的应用程序。数据库使用connectionString进行配置。单元测试内存 - sql服务器

我有一些单元测试,一切工作正常。但它连接到我的真实数据库(通过阅读connectionString)和我的测试填充这个数据库。我不希望这样,我宁愿连接到内存数据库,对我的数据库没有影响。

它是否存在解决方案?我如何配置我的connectionString进行测试?

问候。

+0

你有什么试过?看看[在.Net中对数据库进行存根/模拟](http://stackoverflow.com/questions/5550128/stubbing-mocking-a-database-in-net) – CodeCaster 2013-03-12 11:19:06

+0

你可以使用单独的数据库吗? – usr 2013-03-12 12:40:34

+0

是的,我可以,这是我现在做的。但我宁愿不必维护另一个数据库。 – ragu89 2013-03-12 13:12:55

回答

0

看来你正在进行集成测试而不是单元测试。

通常,在进行单元测试时,数据库交互会被模拟和注入(请参阅Moq简单使用的模拟框架),而不是实际触及数据库。 Here是一个很好的例子,说明如何使用Moq进行嘲弄。

+2

我有一个方法GetReports(字符串标签,日期日期),返回报表对象的列表。我想有一个空的数据库上下文,用一些硬编码的报告填充它,并检查GetReports方法返回我期望的列表。这就是为什么我想有一个内存数据库。 – ragu89 2013-03-12 12:00:03