如何理解@TestClass Apex 代码,其中 List 嵌入在 Map 中

How To Understand @TestClass Apex code with List embedded in Map

我正在尝试理解这段代码,这似乎是 test class,但我很难理解这段代码,我从概念上知道 List 和 Map 集合在 Sales force 中是如何工作的,但这好像有点难懂,

。简而言之,这似乎是在测试一种浏览 CollaborationGroupMember 列表的方法。 为此,已创建 CollaborationGroup 并且代码尝试添加一个用户。

有人可以花点时间让我逐行理解下面的代码吗?

提前致谢

  @isTest
  public class TestGroupFactory {
    public static Map<CollaborationGroup, List<CollaborationGroupMember>> groupWithMember() {
      CollaborationGroup groupe = new CollaborationGroup(Name = 'Test1', CollaborationType = 'Public');
      insert groupe;
      groupe = [SELECT Id, Name FROM CollaborationGroup WHERE Name = 'Test1'];
      List<User> users = [SELECT Id, Name, Numero_de_plaque__c, SenderEmail
                        FROM User
                        WHERE Name = 'User User'];
       List<CollaborationGroupMember> cgms = new List<CollaborationGroupMember>();
      for (User u : users) {
          CollaborationGroupMember cgm = new CollaborationGroupMember();
          cgm.CollaborationGroupId = groupe.Id;
          cgm.MemberId = u.Id;
          cgms.add(cgm);
       }
       insert cgms;
        return new Map<CollaborationGroup, List<CollaborationGroupMember>>{groupe => cgms};
     }
}

它在技术上是一个测试 class,但它不执行任何测试。其目的是为包含测试方法的其他测试 classes 创建测试数据。它具有 @isTest 注释的原因是它只能在测试上下文中访问,并且不计入组织的总测试覆盖率。

显示的方法创建了一个 Chatter 组并将用户添加到组中(如果用户的名称为 "User User"。

下面的代码插入 Chatter Group,然后检索它,以便 ID 可用。我认为在这种情况下不需要检索,但我必须对其进行测试。

  CollaborationGroup groupe = new CollaborationGroup(Name = 'Test1', CollaborationType = 'Public');
  insert groupe;
  groupe = [SELECT Id, Name FROM CollaborationGroup WHERE Name = 'Test1'];

下一部分检索用户(大概是在另一个测试中创建的 class)

      List<User> users = [SELECT Id, Name, Numero_de_plaque__c, SenderEmail
                          FROM User
                          WHERE Name = 'User User'];

然后,CollaborationGroupMembers 列表被实例化。循环开始遍历每个用户。对于每个用户,都会实例化一个新的 CollaborationGroupMember 并将其添加到列表中。

  List<CollaborationGroupMember> cgms = new List<CollaborationGroupMember>();
  for (User u : users) {
      CollaborationGroupMember cgm = new CollaborationGroupMember();
      cgm.CollaborationGroupId = groupe.Id;
      cgm.MemberId = u.Id;
      cgms.add(cgm);
   }

群成员已插入

insert cgms;

组和组成员被添加到地图并返回

return new Map<CollaborationGroup, List<CollaborationGroupMember>>{groupe => cgms};