0

質問と返信をテストするテスト スクリプトを実行したいと考えています。しかし、質問への返信を挿入すると、次のエラーが表示されます。

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 ユーザーに質問への返信を投稿してもらいたい..

4

1 に答える 1

0

デフォルトでは、questionとreply1の挿入はあなたの権限で実行されました(あなたはシステム管理者プロファイルを持っていますよね?)。次に、runAs(新しいユーザー、おそらく標準ライセンスと標準ユーザープロファイルが割り当てられている)を実行すると、sysadminによって作成された質問レコードが表示されません。

  1. 他のユーザー(自分のプロファイルを明示的に指定するのが最善です)には、少なくともQuestionsオブジェクトを読み取る権限がありますか?
  2. 彼はこのオブジェクトに[すべて表示]を持っているのでしょうか、それともパブリック読み取り専用アクセスの共有設定があるのでしょうか。

セキュリティモデルを読んでから、共有設定を適用するか、少なくとも単体テストで質問レコードを手動で共有することを決定します...

于 2012-10-27T09:45:17.513 に答える