首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用社区用户进行测试,getNetworkId返回null

使用社区用户进行测试,getNetworkId返回null
EN

Stack Overflow用户
提问于 2017-06-30 20:06:37
回答 1查看 2.7K关注 0票数 1
代码语言:javascript
复制
@isTest 
public static void TestEmptySearchQuery() {    

    User thisUser = [ select Id from User where Id = :UserInfo.getUserId() ];
        System.runAs ( thisUser ) {     // running as thisUser to Avoid Error: MIXED_DML_OPERATION
        setupData();   // inside setupData, community is created successfully 
        generateUser(); // List of user assigned with some profile, as required for project.  

        list<PermissionSetAssignment> PSA = new  list<PermissionSetAssignment> ();
        PermissionSet ps = [SELECT Id, name FROM PermissionSet where name='Some_Access'];
        system.debug('PermissionSet ' + ps);           
        for(user u:userList)
            PSA.add(new PermissionSetAssignment(AssigneeId = u.id, PermissionSetId = ps.Id));      // all the user assgined with some_access based on requirement of project
        insert PSA;
    }

    Test.startTest(); 
    User usr = [select Id from User where Id = :userList[0].id];

    System.runAs(usr) {
        system.debug('Network ommunityId ****' + Network.getNetworkId());  //getting null 
        SomeClass obj = new SomeClass();
        Id Nid=obj.fetchNetworkId(); // return null;   
        system.debug('network id ' + Nid);  // null
    } 
    Test.stopTest();        
} 

class SomeClass {
//some code
    public id fetchNetworkId() {
        system.debug('network id ' + Network.getNetworkId()); // network id null;
        return Network.getNetworkId(); // return null
    }
    // some code
}

当正常运行页面时,控制器返回正确的网络id,当尝试为此编写测试类时,社区网络id总是返回null。

EN

回答 1

Stack Overflow用户

发布于 2018-08-17 04:32:30

你在runAs中使用的用户需要是社区的一部分,所以你基本上需要创建一个帐户,创建一个联系人,然后为该联系人创建一个用户。这使得runAS用户成为社区的一部分

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44846143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档