Visualforce Controllers are Like Other Apex Classes

DEX450 - Module 20: Testing Visualforce Controllers

📄 第 524 页 🎬 视频课程

课程章节介绍

让我们来聊聊Visualforce控制器的测试。想象一下,你正在开发一个在线调查问卷,这个问卷有三个页面,都是用Visualforce做的,而且它们共享同一个控制器。现在,假设用户在第一页没有填写任何信息就点击了保存按钮,这时候应该会出现一个错误页面。 在测试这个功能时,我们不能让真实的用户去点击页面,所以我们需要写一些代码来模拟用户的行为。这里有几个关键步骤: 1. ,设置页面,:首先,我们需要告诉测试代码从哪个页面开始。我们可以使用`PageReference`类来指定页面,比如`Page.firstPage`,然后使用`Test.setCurrentPage`方法将这个页面设置为当前页面。 2. ,实例化控制器,:页面准备好了,但控制器还没有。我们需要创建一个控制器的实例,比如`QuestionnaireController`。 3. ,模拟用户操作,:接下来,我们需要模拟用户点击保存按钮的行为。这可以通过直接调用控制器的`save`方法来实现。这个方法会返回一个页面URL,我们可以通过`getUrl`方法获取这个URL。 4. ,验证结果,:我们需要检查是否正确地跳转到了错误页面。我们可以使用`System.assertEquals`来比较`save`方法返回的URL和我们预期的错误页面URL是否一致。 5. ,模拟用户输入,:如果用户提供了输入,我们需要在页面URL中添加参数来模拟这一点。比如,我们可以使用`ApexPages.currentPage().getParameters().put`来添加参数。 6. ,重新实例化控制器并测试,:添加参数后,我们需要重新实例化控制器,并再次调用`save`方法,确保一切正常工作。最后,我们再次使用`System.assertEquals`来验证是否跳转到了正确的页面。 通过这些步骤,我们可以确保我们的控制器在各种情况下都能正确地处理用户的输入和操作。这就是测试Visualforce控制器的基本流程。希望这能帮助你更好地理解和应用这些概念!