客户门户网站中的应答和回复插入测试代码失败

时间:2012-05-01 13:00:23

标签: salesforce

我想运行一个测试脚本来测试问题并回复;但是当我插入对问题的回复时,它会显示以下错误。

INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY,null:[CommunityId]

以下是代码段

        User u2 = new User(abcd );insert u2;
       User u3 = new User( sfsadfas); insert u3;


Question question = new Question();
                question.Title = 'Test';
                question.Body = 'Test';
                question.CommunityId = 'asfsadfsadfasdfsa';
                insert question;                  
                Id questId ;
                questId = question.Id;   
            System.debug('questId --->'+questId );  
                Reply reply1 = new Reply();
                //reply1.Name = 'replyquestion11';
                reply1.Body =  'reply no 1 ques 1';
                reply1.QuestionId = question.Id; 
                //reply1.CommunityId = 'fasdfsadfsadfsadf';   
                System.debug('reply1--->'+reply1);        
                insert reply1;

            Test.startTest();  
            System.RunAs(u2)
            {    Reply reply2 = new Reply();
                //reply1.Name = 'replyquestion11';
                reply2.Body =  'reply no 2 ques 1';
                reply2.QuestionId =  question.Id;      
                 System.debug('reply2--->'+reply2);            
                insert reply2;          //Insert Fails here
            } 

任何人都可以帮助我。我想用diff用户发帖回复问题..

1 个答案:

答案 0 :(得分:0)

默认情况下,使用您的权限执行question和reply1的插入(您有一个系统管理员配置文件,对吗?)。 然后执行runAs(一些新用户,可能已经分配了标准许可证和标准用户配置文件),他看不到sysadmin创建的Question记录。

  1. 其他用户(您最好明确指定其个人资料)是否有权至少阅读“问题”对象。
  2. 他是否拥有此对象上的全部查看功能,或者可能存在公共只读访问权限的共享设置。
  3. 阅读security model,然后决定应用共享设置或至少在单元测试中手动共享问题记录......