【发布时间】:2012-07-29 19:24:17
【问题描述】:
因此,您在 C# 中有一个使用存储库模式的 DAL,并且每个存储库都有一个接口。它由 ADO.NET、MS SQL Server 和存储过程调用提供支持。
这非常适合在进行单元测试时对正在使用它的存储库进行存根/模拟,我喜欢它!
但是,我希望为 DAL 本身添加一些单元测试。最好使用带有 NUnit 的 Rhino Mocks。但是,如果可以证明它可以做 Rhino 在这个问题上做不到的事情,我愿意切换到 MoQ。
我宁愿在单元测试期间不让它与任何数据库对话,以保持它们更“纯”,同时仍然有效地测试 DAL 本身。但是,如果您不能真正有效地对 DAL 本身进行单元测试而不与 DB 对话,那么在内存替换或基于可移植文件的替换中,与 SQL Server 和相同的 SqlConnection 和 SqlCommand 调用兼容的替代方案是什么。
如果需要,可以对 DAL 进行重构,以使其更易于注入,只要它不会同时使设计过于复杂。已经在使用 Microsoft Unity,用于具有存储库模式的 DI。
【问题讨论】:
标签: unit-testing c#-4.0 mocking nunit data-access-layer