其他系列博文
- 基于Abp的扩展模块实现 - 前言
- 基于Abp的扩展模块实现第1例 - 数据权限控制(开发)
- 基于Abp的扩展模块实现第1例 - 数据权限控制(测试)
- 基于Abp的扩展模块实现第2例 - 数据字段按需更新(开发)
- 基于Abp的扩展模块实现第3例 - 状态管理(开发)
- 基于Abp的扩展模块实现第3例 - 状态管理(测试)
背景
在上一篇博文中,我们通过重写DbContext的SaveChanges方式实现了一个基于Abp的按需字段更新机制,在这一篇中博主将对该机制编写单元测试。
目标
- 创建测试实体,并指定按需更新字段,当调用相关仓储服务的
UpdateAsync
方法时,若传入值为null,不对其进行更新
思路
创建一个测试用户实体HierarchicalUser
,具有HierarchyCode
和Name
两个属性,其中HierarchyCode
字段具有较低更新频率,大多数情况下不参与实体更新操作。因此我们可使用上一章中创建的PreventUpdateIfDefault
特性对其进行标注,以在集成测试中测试其是否不参与UpdateAsync
方法的更新操作。
编码
- 创建测试类
PartialUpdate_Tests
。
1 | public class PartialUpdate_Tests : EntityFrameworkCoreTestBase |
- 创建测试方法。
1 | [ ] |
- 测试写完了,我们来跑一下:
完美通过。
至此数据字段按需更新机制的开发与测试已全部完毕。