我想运行一个测试脚本来测试问题并回复;但是当我插入对问题的回复时,它会显示以下错误。
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用户发帖回复问题..
答案 0 :(得分:0)
默认情况下,使用您的权限执行question和reply1的插入(您有一个系统管理员配置文件,对吗?)。 然后执行runAs(一些新用户,可能已经分配了标准许可证和标准用户配置文件),他看不到sysadmin创建的Question记录。
阅读security model,然后决定应用共享设置或至少在单元测试中手动共享问题记录......