0

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

INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY,空:[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 用户发布对问题的回复..

4

1 回答 1

0

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

  1. 其他用户(最好明确指定他的个人资料)是否有权至少阅读问题对象。
  2. 他是否在此对象上查看全部,或者是否有公共只读访问的共享设置。

阅读安全模型,然后决定应用共享设置或至少在单元测试中手动共享问题记录......

于 2012-10-27T09:45:17.513 回答