bas*_*bas 1 c# sql-server testing entity-framework sql-server-ce
我正在尝试继续我的实体框架+测试经验.我在NUnit中编写了测试,删除表,创建一个新的数据库,在测试所需的表中创建行,进行测试,然后重复.
关于两种不同的测试策略有一篇很好的帖子,它解释了测试的一些缺点Effort(在内存数据库中).无论如何,我确实非常喜欢对实际数据库进行测试,因为我可以验证真实数据库以验证数据库中是否以及如何结束.
然后我遇到了这篇文章,在那里我可以读到我应该/可能有一个不同的数据库服务器用于我的应用程序和我的测试.例如,应用程序针对SQL Server运行,而测试针对SQL Server CE运行.
我现在有几个可用于SQL Server Express的工作集成测试.我的应用程序在相同的连接字符串上运行,针对同一数据库服务器实例.
这是不明智的吗?
从长远来看,我有麻烦吗?
任何人都可以确认并解释是否需要/建议为应用程序(SQL Server)和集成测试(SQL Server CE)使用不同的数据库服务器?
非常感谢提前.
使用SQL Server作为数据库,使用SQL Server CE作为测试数据库可能是值得的.这很常见,因为对于这些测试通常执行的操作,在SQL Server CE而不是SQL Server上运行测试可能会更快(创建整个数据库,执行快速事务,然后完全销毁它).这也意味着您不需要在开发计算机上安装完整的SQL Server.
但是,没有必要这样做.有些人可能也不想这样做.您甚至可能在程序中使用仅在SQL Server上可用的功能,这基本上意味着您将无法使用SQL Server CE.
最后,您的代码可能与SQL Server CE一起使用,但不能与SQL Server一起使用,因此在测试期间不会出现问题.有一次,我针对MySQL运行了一个应用程序,但是使用了sqlite来运行一些测试.sqlite与MySQL的工作方式略有不同,这导致我的程序在测试中工作正常,但在实时中失败.
所以,我仍然建议能够测试你将在现场使用的相同类型的数据库.您总是可以找到中间立场,例如针对SQL Server CE测试数据库进行开发,然后在使用新版本之前切换到SQL Server上的测试以覆盖该情况.
| 归档时间: |
|
| 查看次数: |
1143 次 |
| 最近记录: |