salesforce 零基础学习(五十七)Test 类中创建TestUser帮助类

我们写Test Class的时候往往都需要指定一个uesr去run test method。

TestUserHelper类如下:

 1 public class TestUserHelper {
 2     public static User createUserByPermission(String permissionSetName) {
 3         Profile pfl = [select id from profile where name='System Administrator'];//the profile which you want to assign.
 4         //Declaring the User
 5         User runAsUser = new User(alias = 'Admin', email='admin@testorg.com',
 6                                   emailencodingkey='UTF-8', lastname='Testing', languagelocalekey='en_US',
 7                                   localesidkey='en_US', profileid = pfl.Id,  country='United States', CommunityNickname = 'u1',
 8                                   timezonesidkey='America/Los_Angeles', username='admin@xxx_org.com' );
 9         
10         Insert runAsUser;     
11         PermissionSet pSet = [SELECT ID,Label from PermissionSet WHERE Name=:permissionSetName];
12         PermissionSetAssignment Asign = New PermissionSetAssignment();
13         Asign.AssigneeId=runAsUser.ID;
14         Asign.PermissionSetId=pSet.ID;
15         Insert Asign;      
16         Return runAsUser; 
17     }
18     
19     public static User createUserByPermissionAndProfile(String permissionSetName,String profileName) {
20         Profile pfl = [select id from profile where name= :profileName];
21         //Declaring the User
22         User runAsUser = new User(alias = 'Admin', email='amin@testorg.com',
23                                   emailencodingkey='UTF-8', lastname='Testing', languagelocalekey='en_US',
24                                   localesidkey='en_US', profileid = pfl.Id,  country='United States', CommunityNickname = 'u1',
25                                   timezonesidkey='America/Los_Angeles', username='admin@xxx_org.com' );
26         
27         Insert runAsUser;     
28         PermissionSet pSet = [SELECT ID,Label from PermissionSet WHERE Name=:permissionSetName];
29         PermissionSetAssignment Asign = New PermissionSetAssignment();
30         Asign.AssigneeId=runAsUser.ID;
31         Asign.PermissionSetId=pSet.ID;
32         Insert Asign;      
33         Return runAsUser; 
34     }
35     
36 }

里面有两个静态方法,一个是创建一个Profile为Admin,指定的Permission Set的User,一个是指定Profile,指定Permission Set的User。相关Test Class引用:

 1 @isTest
 2 private class TestUserClassUsingUserHelper {
 3 
 4     static testMethod void myUnitTest() {
 5         User testUser = TestUserHelper.createUserByPermission('your test permisson set name');
 6         System.RunAs(testUser) {  
 7             Test.startTest();
 8             //TODO init data and operate like dml and assert etc
 9             Test.stopTest();
10         }
11     }
12 }

总结:此篇方便以后自己写TestClass创建TestUser,有需要的可以直接用,有错误的地方欢迎指出。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏c#开发者

Entity Framework 6.x Code Frist For Oracle 实践与注意点

Entity Framework 6.x Code Frist For Oracle 实践与注意点 开发环境 Visual Studio.net 2015/20...

2747
来自专栏后端程序员的自我修养

CPython源码阅读笔记(1)

目前 CPython 的开发已经迁移到了 Github 上,可以直接去 Github clone 对应的分支。 我们将基于 Python 2.7.13 版本, ...

1051
来自专栏NetCore

[原创]Fluent NHibernate之旅(四)-- 关系(中)

接着上一篇,我们继续讲解ORM中的关系。在数据库设计中,我们最多打交道的,要算一对多关系了,延续我们的示例,我们来讲解一下一对多的关系。 Fluent NHib...

19210
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理

前言 回顾上一节,我们熟悉的了解了消息的请求和响应,这一节我们来建立数据库的表,表的设计蛮复杂 你也可以按自己所分析的情形结构来建表 必须非常熟悉表的结果...

30610
来自专栏量化投资与机器学习

【前沿】为什么Python是金融产品开发的最佳选择?

How do you nd your way and stay a oat in ntech? This new technology took the w...

1002
来自专栏数据和云

Oracle 12c多租户特性详解:全局用户与本地用户的原理与维护

? 前情回顾:Oracle 12c多租户特性详解:从Schema到PDB的变化与隔离 COMMON 和 Local 用户 无论在 CDB 和 Non-CDB...

2775
来自专栏张高兴的博客

张高兴的 Windows 10 IoT 开发笔记:使用 MAX7219 驱动数码管

3355
来自专栏杨建荣的学习笔记

Oracle 12c Data Guard搭建(一) (r10笔记第57天)

对于使用12c的PDB,如果想尽快熟悉,掌握,那就是和业务挂钩,让它跑在业务上。当然是在能够基本驾驭它的前提下,要不就真成了甩手掌柜。11g可以玩得很好...

3609
来自专栏Petrichor的专栏

OJ术语: AC、WA、TLE、OLE、MLE、RE、PE、CE

621
来自专栏Pulsar-V

SIFT特征检测(一)

(还没推完公式先贴上matlab和c的代码 from官方文档) 因为官方的shift.m直接跑起来会出问题。我这儿改良了部分代码 改sift.m % [ima...

4944

扫码关注云+社区