0

公開サイトのユーザーから実行するためのコードがあります。

現在、testMethods は標準のテスト ユーザーとして実行され、コードは正常に動作します。ただし、サイトでは機能が失敗し、コードを実行する前にユーザー認証を要求します (ユーザーは Salesforce 資格情報を持っていないため、これは必要ありません)。

testMethods をサイトのゲスト ユーザーまたは同様のプロファイルとして実行する方法はありますか? 事前にプロファイルの名前を知ることはできず、テストの実行時にプロファイルが存在しない可能性があることに注意してください。

4

3 に答える 3

0
Profile p = [SELECT Id FROM Profile WHERE Name='MyProfile']; 

User u = new User(Alias = 'standt', Email='standarduser@testorg.com', 
        EmailEncodingKey='UTF-8', LastName='Testing', LanguageLocaleKey='en_US', 
        LocaleSidKey='en_US', ProfileId = p.Id, TimeZoneSidKey='America/Los_Angeles', UserName='standarduser@testorg.com');

System.runAs(u) 
{
        System.debug('Current User: ' + UserInfo.getUserName());
}
于 2012-07-27T04:56:48.480 に答える
0

問題の特定のプロファイルまたは権限セットを持つユーザーを作成する必要があります。これは、以前の方法で行うことができます。そのメソッドにも @isTest を使用します。

次に、Run As System.runAs(u) 機能を使用して、そのユーザーとしてメソッドを実行します。

https://nonitechsolutions.blogspot.com/2021/06/salesforce-enable-guest-user-on-your.htmlにアクセスしてください

于 2021-06-21T10:48:02.707 に答える
-1

Salesforceには、特定のユーザーとしてテストを実行するためのSystem.runasメソッドがあります。事前にプロファイル名がわからない場合は、管理パッケージなどでこれを行っていると思います。

ドキュメントから次のサンプルのようなことをすることができます

public class TestRunAs {
   public static testMethod void testRunAs() {
      User u;
      u = [select ID from user where communitynickname = :yoursitename]


      System.runAs(u) {
      // The following code runs as user 'u'  

      System.debug('Current User: ' + UserInfo.getUserName());
      System.debug('Current Profile: ' + UserInfo.getProfileId()); }

}}

于 2012-07-25T19:18:02.677 に答える