salesforce学习笔记(1)- salesforce apex代码测试类的编写
由于salesforce的硬性要求,salesforce apex代码覆盖率至少要达到75%、且所有的测试方法都成功执行完成,才能正常部署到生产环境。
我理解的编写测试类分为4个步骤:
- 理解代码逻辑(数据的增删改)
- 创建测试数据
- 用测试数据模拟代码逻辑执行
- 验证结果
案例:
某企业员工的薪资组成为Base+奖金,且奖金额为Base的10%。
薪资表 Apex Trigger:
1 trigger SalaryTrigger on Salary__c (before insert) { 2 List<Salary__c> salaryList = Trigger.new; 3 SalaryHandler.countSalary(salaryList); 4 }
Apex Trigger Handler:
1 Apex Trigger Handler: 2 public class SalaryHandler { 3 public static void countSalary(List<Salary__c> salaryList) { 4 for (Salary__c salaryRecord :salaryList){ 5 salaryRecord.TotalSalary__c = salaryRecord.BaseSalary__c + salaryRecord.BaseSalary__c*0.1; 6 } 7 } 8 }
测试类:
1 @isTest 2 private class SalaryHandlerTestClass { 3 static testMethod void countSalaryTest() { 4 // 创建测试数据 5 Salary__c sly = new Salary__c(Name='员工1', BaseSalary__c=10000); 6 7 Test.startTest(); 8 // 插入数据,模拟Handler类中代码逻辑执行 9 insert sly; 10 Test.stopTest(); 11 12 // 取得新插入的测试数据 13 sly = [SELECT TotalSalary__c FROM Salary__c WHERE Id =:sly.Id]; 14 15 // 验证数据结果 16 System.assertEquals(11000, sly.TotalSalary__c); 17 } 18 }
写在最后:
在实际工作中,关于75%这个覆盖率,在达到标准的基础上,我们更应该关注的是,所有的用例是否都被覆盖到了,不要单纯纠结于覆盖率大小。
Copyright © 乔木船长
博客主页:https://www.cnblogs.com/captainqiaomu/
欢迎转发点评和指正!