Atu*_*eka 5 .net c# integration-testing unit-testing moq
对不起,如果我问的是非常基本的问题,
我有一组Web服务(使用.Net WebApi开发).这些服务是业务层或数据访问层API.这些API要么依赖于其他服务,要么依赖于数据库本身.
我想为它编写单元测试用例.我有以下问题
由于业务层API依赖于数据访问服务或其他一些服务.如果我只是为了调用业务API而编写单元测试,那么它将调用数据访问API.这是编写单元测试用例的正确方法吗?或者我应该使用单元测试注入所有依赖项对象?我认为之前的一个是集成测试而不是单元测试.
我应该为数据访问层编写单元测试吗?我检查了这个链接(编写数据访问代码测试:单元测试是浪费),它说DAL不需要单元测试.我还应该为数据访问层编写测试吗?我认为这将是集成测试而不是单元测试?
我想说,如果您想做 TDD,那么这不是“正确”的方式,因为正如您所说,您将执行集成测试。话又说回来,也许您不想进行 TDD 并且集成测试对您来说已经足够好了,但要回答这个问题:这不是对代码进行单元测试的正确方法。
我想说这取决于您的数据访问层中有什么。例如,如果您实现存储库,您可能需要编写一些测试。
您希望确保给定从存储库检索的实体,编辑该实体的某些属性并保留更改实际上会保存修改,而不是创建新实体。现在:您可能认为这是一个集成测试,但这实际上取决于您的代码设计得如何。例如,您的存储库可能只是低级 ORM 之上的额外逻辑层。在这种情况下,在测试 save 方法时,您要做的就是断言在存储库中注入的 ORM 服务上使用正确的参数调用正确的方法。
访问数据时,可能会出现数据库连接中断、数据格式不符合预期、反序列化问题等问题。如果您想提供一些良好的错误处理,也许创建自定义异常并根据上下文向它们添加更多信息,那么您肯定需要编写测试以确保传播正确的信息
另一方面
如果您的 DAL 只是包装不可模拟 ORM 的几个类,并且其中没有任何逻辑,那么也许您不需要测试,但似乎这种情况不会经常发生,您会几乎总是有一些可能出错并且您想要测试的逻辑。
归档时间: |
|
查看次数: |
451 次 |
最近记录: |