【发布时间】:2018-10-23 20:03:54
【问题描述】:
我想对具有 3 个数据库调用的 Controller 方法进行单元测试。但是每个数据库调用都是通过询问一个名为 DAL 的大型 Partial Class 文件来完成的。 Dal 类有 70 种方法!我是否必须创建一个具有 70 种方法的接口,以便 DAL 类可以使用;所以我可以用模拟切换它?或者有没有更好的解决方案来模拟这个 DAL 类?
【问题讨论】:
-
如果你走接口的方式,你可以做几个小接口,让DAL实现所有的。通过这种方式,您可以对依赖项和单元测试进行“分类”。
-
您为什么不从 DAL 类派生并为您的 Controller 方法实现自己的特定接口,而不是使用 Partial。这样你就可以访问这两个世界,但你仍然可以模拟你想要的部分,而不必担心 DAL 类。
-
以 Moq 为例,您只需要模拟您调用的方法。因此,您可以使用 Visual Studio 提取您的巨型界面,然后只模拟您希望在测试用例中调用的方法。
标签: c# unit-testing mocking partial-classes