Class Apex-添加无抖振用户的测试类

Class Apex-添加无抖振用户的测试类,class,triggers,salesforce,apex-code,salesforce-chatter,Class,Triggers,Salesforce,Apex Code,Salesforce Chatter,我是一个新手,尝试为注册处理程序构建一个测试类,允许为组织创建新的无聊天记录的用户。要创建无聊天的用户,工作触发器将根据存储在名为DomainList的自定义对象中的可接受电子邮件域的预定义列表检查新用户的电子邮件域 寻找关于如何更好地构造代码覆盖率的测试类的建议。任何想法,谢谢 全局类RegHandlerDomain实现Auth.RegistrationHandler{ 全局用户createUser(Id portalId,Auth.UserData){ 字符串域=data.email.spl

我是一个新手,尝试为注册处理程序构建一个测试类,允许为组织创建新的无聊天记录的用户。要创建无聊天的用户,工作触发器将根据存储在名为DomainList的自定义对象中的可接受电子邮件域的预定义列表检查新用户的电子邮件域

寻找关于如何更好地构造代码覆盖率的测试类的建议。任何想法,谢谢

全局类RegHandlerDomain实现Auth.RegistrationHandler{
全局用户createUser(Id portalId,Auth.UserData){
字符串域=data.email.split('@')[1];
列表listedDomains=[选择id,
名称
来自域列表
其中Email_Domain_uc=:Domain];
if(listedDomains.size()==1){
用户u=新用户();
Profile p=[SELECT Id]
来自配置文件,其中name='chatterfree User'];
//使用传入电子邮件作为用户名
u、 用户名=data.email;
u、 email=data.email;
u、 lastName=data.lastName;
u、 firstName=data.firstName;
u、 别名=(data.username!=null)?data.username:data.identifier;
如果(u.alias.length()>8){
u、 别名=u.alias.子字符串(0,8);
}
u、 languagelocalekey=UserInfo.getLocale();
u、 localesidkey=UserInfo.getLocale();
u、 emailEncodingKey='UTF-8';
u、 timeZoneSidKey=‘美国/洛杉矶’;
u、 profileId=p.Id;
System.debug('返回'+data.username'的新用户记录);
返回u;
}否则返回null;
}
全局void updateUser(Id userId、Id portalId、Auth.UserData){
用户u=新用户(id=用户id);
u、 email=data.email;
u、 lastName=data.lastName;
u、 firstName=data.firstName;
System.debug('正在更新'+data.username'的用户记录);
更新(u);
}
}
测试类在插入之前查找“}”

@isTest(见AllData=true)
公共类RegHandlerTest{
public void myTestMethod1(){
//创建无抖动的测试用户
Profile p=[select id]
来自配置文件,其中name='chatterfree User'];
用户u1=新用户(别名='chfree01',
电子邮件chatterfreeuser101@testorg.com',
emailencodingkey='UTF-8',
lastname=‘测试’,
公司名称='testorg',
languagelocalekey='en_US',
localesidkey='en_US',
profileId=p.Id,
timezonesidkey=‘美国/洛杉矶’,
用户名=chatterfreeuser101@testorg.com');
插入u1;
}
//检查新用户电子邮件域以查看是否在自定义对象域列表中
List LISTEDDOMANES=[选择id、电子邮件\u域\u\c
来自域列表
其中name='testorg'限制1];
if(listedDomains.size()==1)System.debug('WORKS');
}

首先,您需要创建一个适当的单元测试,因为您的测试不正确

@isTest(见AllData=true)
公共类RegHandlerTest{
@isTest private static void verifyInsertChatterFreeUser(){
//创建无抖动的测试用户
Profile p=[SELECT id]
从侧面
其中name='chatterfree User'];
用户u1=新用户(别名='chfree01',
电子邮件chatterfreeuser101@testorg.com',
emailencodingkey='UTF-8',
lastname=‘测试’,
公司名称='testorg',
languagelocalekey='en_US',
localesidkey='en_US',
profileId=p.Id,
timezonesidkey=‘美国/洛杉矶’,
用户名=chatterfreeuser101@testorg.com');
插入u1;
//在插入后执行一些关于用户预期状态的断言
//检查新用户电子邮件域以查看是否在自定义对象域列表中
List LISTEDDOMANES=[选择id、电子邮件\u域\u\c
来自域列表
其中name='testorg'限制1];
//正如您用SeeAllData=true注释类一样,此断言始终为true
System.assertEquals(1,listedDomains.size());
}
@isTest private static void VerifyUpdateCharterFreeUser(){
//创建无抖动的测试用户
Profile p=[SELECT id]
从配置文件
其中name='chatterfree User'];
用户u1=新用户(别名='chfree01',
电子邮件chatterfreeuser101@testorg.com',
emailencodingkey='UTF-8',
lastname=‘测试’,
公司名称='testorg',
languagelocalekey='en_US',
localesidkey='en_US',
profileId=p.Id,
timezonesidkey=‘美国/洛杉矶’,
用户名=chatterfreeuser101@testorg.com');
插入u1;
//在插入后执行一些关于用户预期状态的断言
//在用户上更改某些内容
u1.email='test.chatter。free@gmail.com';
更新u1;
//对更新后用户的预期状态执行一些断言
//System.assertEquals(“预期值”,u1.字段);