Testing Controller Constructors: Setting currentPage()

DEX450 - Introductions and Overview

📄 第 529 页 🎬 视频课程

课程章节介绍

让我们来聊聊如何在Salesforce中测试控制器的构造器,特别是如何设置和测试`currentPage()`。这个过程其实挺有意思的,就像你在搭建一个小舞台,然后看看演员(也就是你的代码)在上面怎么表演。 首先,想象一下,你有一个控制器类,叫做`MyController`。这个类有一个构造器,它的任务是在对象创建的时候,获取当前的Visualforce页面,并把它保存起来。这个页面信息是通过`ApexPages.currentPage()`这个方法获取的。 现在,我们要测试这个构造器,确保它真的能正确地获取并保存页面信息。为了做到这一点,我们需要模拟一个Visualforce页面,这样`ApexPages.currentPage()`就能返回我们设定的页面,而不是真的去访问一个页面。 这里是怎么做的: 1. ,创建测试页面引用,:首先,我们创建一个`PageReference`对象,指向我们想要测试的页面,比如`Page.MyPage`。这就像是在说,“嘿,假设我们现在就在这个页面上”。 2. ,设置当前页面,:然后,我们使用`Test.setCurrentPage()`方法,把我们刚才创建的页面引用设置为当前的页面。这就像是把我们的模拟页面放到舞台上,让`ApexPages.currentPage()`能够看到它。 3. ,实例化控制器,:接下来,我们创建`MyController`的一个实例。当这个实例被创建时,它的构造器会自动运行,尝试获取当前的页面,并保存它。 4. ,验证结果,:最后,我们需要检查一下,看看构造器是否真的把页面信息保存下来了。这通常涉及到检查控制器的某个属性,确保它和我们设置的模拟页面匹配。 通过这样的步骤,我们就可以确保我们的控制器构造器在不同的情况下都能正确地工作。这不仅帮助我们理解代码的行为,也确保我们的应用在各种情况下都能稳定运行。 希望这个解释能帮助你更好地理解如何在Salesforce中测试控制器的构造器。如果有任何疑问,随时问我哦!