Salesforce 中的文件夹

在 Salesforce 中,我们可以建立各种文档、报表、仪表板、电子邮件模板等。它们都被保存在相应的文件夹中。

Salesforce 的后端将这些文件夹保存为 Folder 类型的对象。这样,我们就可以在 Apex 代码中通过 Folder 对象对文件夹进行操作。

单元测试的问题

在 Apex 中是不能创建文件夹的。这样就导致在进行文件夹相关的单元测试时,我们无法新建文件夹作为测试数据。

举个例子:电子邮件模板的单元测试。

Salesforce 提供了“电子邮件模板”功能。用户可以在其中定义文本或者 HTML 类型的模板。这些模板可以接收相应的数据并动态生成电子邮件发送给用户。

在 Apex 中,我们可以使用 SingleEmailMessage 类来发送电子邮件,并且在其中调用 setTemplateId() 函数来设置电子邮件需要使用的模板。

如果我们要在单元测试中新建一个电子邮件模板作为测试数据,那么我们就必须设置其所属的文件夹(FolderId)。

问题来了:由于无法在代码中新建文件夹,我们就无法新建电子邮件模板,从而无法继续测试。

在这种情况下我们可以使用 SeeAllData=true 来让单元测试函数使用现有的数据,但这不是一个好的选择,因为可能会导致安全问题。

另一个解决的方法就是直接使用当前用户的 ID 来作为文件夹的 ID。在 Salesforce 中,个人文件夹的 ID 就是该用户的 ID。

比如:

EmailTemplate testTemplate;
// 设置其他属性
// ... // 将当前用户的 ID 作为文件夹 ID,保存这个测试用的模板
testTemplate.folderId = UserInfo.getUserId(); // 继续测试函数的逻辑
// ...

最新文章

  1. mysql 完整性约束
  2. 【WCF全析(一)】--服务协定及消息模式
  3. ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First
  4. js jquery 关闭弹出页面 并刷新父页面(window.opener)
  5. yii2权限控制rbac之rule详细讲解(转)
  6. JS操作文件
  7. BZOJ 1927 星际竞速
  8. Oracle 10G 使用UTL_SMTP发送中文电子邮件[Z]
  9. js压缩解压工具
  10. java大数常用的方法
  11. Intellij Idea 2018常用快捷键总结
  12. Eclipse编程中免除alt+斜杠,设置自动提示
  13. pt-table-checksum校验与pt-table-sync修复数据
  14. Kafka学习之路 (五)Kafka在zookeeper中的存储
  15. libgdx判断actor与circle是否重叠
  16. tcp网络通信的三次握手与三次挥手
  17. Invalid /admin/*.jsp in filter mapping
  18. 洛谷P1038神经网络
  19. eclipse3.4配置的tomcat server如何部署以前的web项目?
  20. Django中的CBV和FBV

热门文章

  1. leetcode-数组-子集
  2. Angularjs中的缓存以及缓存清理
  3. [Swift]LeetCode50. Pow(x, n) | Pow(x, n)
  4. [Swift]LeetCode64. 最小路径和 | Minimum Path Sum
  5. [Swift]LeetCode442. 数组中重复的数据 | Find All Duplicates in an Array
  6. Python档案袋( 进程与协程 )
  7. js的预解析
  8. 【Spark篇】---Spark中内存管理和Shuffle参数调优
  9. Guava 源码分析(Cache 原理)
  10. SpringCloud(4)---Ribbon服务调用,源码分析