测试5 单元测试与集成测试

375 阅读2分钟

对单元测试的理解
单元测试,测试对象是单一服务行为。
单元级接口测试需要将所有需要用到的外部服务mock(数据库、其他服务、第三方系统等),将测试对象限定在当前单一服务代码上,仅测试当前服务代码的操作。

写好单元测试的原则
1.单元测试需要和实现代码一起编写,先写测试,更有利于了解业务的功能。
2.对于复杂的功能,需要做好任务的拆分。
3.设计单元测试时,不要面向实现,而要面向接口,断言的设置可以更宽泛些而不是具体的值,减少因实现的变动而导致测试通不过的可能性。

对集成测试的理解
集成测试,测试的是多个组件的协同工作的表现。 集成测试需要mock所有外部组件,比如第三方系统,数据库,中间件等,将测试对象限定在所有当前项目依赖的代码和组件上。

集成分为两种,一种是代码之间的集成,一种是代码与外部组件的集。
代码的集成
集成测试是选择一条任务执行的路径,把路径上用到的组件集成到一起进行测试。 比如我们一个MOCK MVC测试可以贯穿从Controller到Service到Respository到DB的测试。

外部组件的集成
有些接口可能会依赖一些外部组件,比如数据库,中间件等。
与外部组件集成,难点就在于外部组件的状态如何控制。

像数据库可以创建单独的test数据库,第三方系统需要设置代理进行mock等。