【发布时间】:2016-03-10 14:50:20
【问题描述】:
我正在实现一个 C# 类的接口,它的全部工作基本上只是调用一些 T-SQL 存储过程并返回数据。该接口的其他实现可能通过 Web 服务、读取文件等获取数据,因此为了测试这个特定的类,我最好模拟一个 SQL Server 数据库及其过程。
我不确定这是否可行。我见过像 RhinoMock 这样的工具用于模拟数据库tables,但由于我的代码的全部目的是与数据库对话,我可以模拟整个数据库还是有点浪费时间?理想情况下,我希望有一种方法可以透明地提供真实数据库的替代品,以便可以进行本地测试,对假数据库进行真实的存储过程调用。
【问题讨论】:
-
你确定@inquisitive_mind 吗?这将是理想的,但是:stackoverflow.com/questions/3335162/…
-
@montewhizdoh 你可能是对的!
-
我认为这一切都取决于。您确实不想编写最终测试代码而不是您编写的代码的单元测试。测试连接是否有效属于“我是在测试 SQL Server,还是在测试我的代码?”的灰色区域。和“我使用正确的连接字符串吗?”。最好问一下:有哪些代码路径,从存储过程传入和传出?测试是否与功能用例相匹配?如果您是 TDD,您希望与功能用例紧密结合 - 那时一切都会开始非常吻合..
标签: c# sql-server unit-testing stored-procedures rhino-mocks