VisualForce page Controller Test Method

本文详细解析了使用Apex进行Salesforce平台控制器测试的方法,包括页面引用、参数设定、断言验证及数据查询等关键步骤,展示了如何通过测试确保业务流程的正确性和数据的一致性。

[sourcecode language=”javascript”]
public class thecontrollerTests {

public static testMethod void testMyController() {
//success是测试对象VF
PageReference pageRef = Page.success;
Test.setCurrentPage(pageRef);

//thecontroller是测试对象controller
thecontroller controller = new thecontroller();
//如何取得下一页
String nextPage = controller.save().getUrl();

// 断言判断
System.assertEquals(‘/apex/failure?error=noParam’, nextPage);

// 设定参数
ApexPages.currentPage().getParameters().put(‘qp’, ‘yyyy’);

// Setter的测试方法
controller = new thecontroller();
controller.setLastName(‘lastname’);
controller.setFirstName(‘firstname’);
controller.setCompany(‘acme’);
controller.setEmail(‘firstlast@acme.com’);
nextPage = controller.save().getUrl();

// 断言
System.assertEquals(‘/apex/success’, nextPage);
Lead[] leads = [select id, email from lead where Company = ‘acme’];
System.assertEquals(‘firstlast@acme.com’, leads[0].email);
}
}
[/sourcecode]

### Spring Boot Whitelabel Error Page 的解决方案 Spring Boot 中出现 `Whitelabel Error Page` 是因为应用无法找到请求路径对应的控制器映射,或者存在配置错误等问题。以下是针对该问题的全面分析和解决办法。 #### 1. 检查 Controller 配置 确保你的控制器类被正确定义并扫描到了。如果使用的是默认包扫描机制,则需要确认控制器所在的包及其子包位于主应用程序类所在包之下。例如: ```java package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class IndexController { @GetMapping("/") public @ResponseBody String home() { return "Welcome to the Home Page!"; } } ``` 上述代码定义了一个简单的根路径 `/` 映射[^4]。注意这里使用了 `@GetMapping` 注解替代原始的 `@RequestMapping(method = RequestMethod.GET)`,这是更现代的方式。 #### 2. 调整项目结构 如果你的 Web 控制器文件夹不在标准位置(即与主程序入口类处于同一父包下),可能会导致组件未被自动扫描到。建议将所有的控制层逻辑放置于类似于 `com.example.demo.controller` 这样的命名空间中,并保持其层次关系清晰合理[^3]。 #### 3. 使用正确的注解形式 有时开发者会混淆 `@Controller` 和 `@RestController` 的用途。对于返回 JSON 数据的情况应采用后者;而对于视图渲染则需保留前者配合模板引擎一起工作。比如下面的例子展示了如何通过 Thymeleaf 渲染 HTML 页面而不是直接响应字符串数据: ```html <!-- src/main/resources/templates/index.html --> <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head><title>Home</title></head> <body>Hello from Template!</body> </html> ``` 相应的 Java 方法如下所示: ```java @Controller public class ViewController { @GetMapping("/view") public String viewHomePage(){ return "index"; } } ``` 此处无需加任何额外标记即可实现跳转至指定资源文件的功能[^5]。 #### 4. 处理 POST 请求异常警告 当遇到类似 WARN 日志提示 “Request method 'POST' not supported”,这表明当前 URL 不支持所提交的方法类型。可以通过增加对应处理函数来消除此类告警信息。例如允许 GET/POST 同时生效可修改为如下样式: ```java @RequestMapping(value="/",method=RequestMethod.POST) public ResponseEntity<String> handlePost(@RequestBody(required=false) Map<String,Object> body){ System.out.println("Received post request with payload:"+body); return new ResponseEntity<>("Success!", HttpStatus.OK); } ``` 以上片段实现了对接收表单参数的支持功能。 #### 5. 测试验证改动效果 完成上述修正之后记得重启服务实例再次测试接口可用性状况。打开浏览器输入地址栏链接如 http://localhost:8080/test ,观察是否还能看到空白错误界面现象发生。正常情况下应该能够成功加载预期的内容显示出来[^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值