我想在系统管理员资料的测试类中创建一个用户。
我遇到的问题是我有seeAllData = false,在测试类中只会使用测试类中的数据。
List<Profile> ps = [select id, name from Profile where name = 'System Administrator'];
这可能不会返回任何值。
我们如何创建用户的任何想法
修改
即使使用seeAllData = false,我也可以获取查询数据。即使SeeAllData = false,也可以看到Profile记录是否可见?
答案 0 :(得分:6)
根据documentation,用户和个人资料对象被视为“用于管理您的组织的对象”,无论您的测试类/方法是否包含IsTest(SeeAllData=true)
,都可以访问它们注释
以这种方式可访问的其他对象包括:
答案 1 :(得分:0)
We can use the code directly to create a role and attach it to a user with system admin profile.
@isTest static void UserCreate() {
UserRole obj=new UserRole(Name= 'ABC');
insert obj;
Profile pf= [Select Id from profile where Name='System Administrator'];
String orgId=UserInfo.getOrganizationId();
String dateString=String.valueof(Datetime.now()).replace(' ','').replace(':','').replace('-','')
Integer RandomId=Integer.valueOf(Math.rint(Math.random()*1000000));
String uniqueName=orgId+dateString+RandomId;
User uu=new User(firstname = 'Alan',
lastName = 'McCarthy',
email = uniqueName + '@test' + orgId + '.org',
Username = uniqueName + '@test' + orgId + '.org',
EmailEncodingKey = 'ISO-8859-1',
Alias = uniqueName.substring(18, 23),
TimeZoneSidKey = 'America/Los_Angeles',
LocaleSidKey = 'en_US',
LanguageLocaleKey = 'en_US',
ProfileId = pf.Id,
UserRoleId = obj.Id);
}