其他系列博文
- 基于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 | [] |
- 测试写完了,我们来跑一下:

完美通过。
至此数据字段按需更新机制的开发与测试已全部完毕。