salesforce学习笔记(1-1)- salesforce apex代码测试类的编写

发布时间 2023-04-04 14:11:51作者: 乔木船长

由于salesforce的硬性要求,salesforce apex代码覆盖率至少要达到75%、且所有的测试方法都成功执行完成,才能正常部署到生产环境。

我理解的编写测试类分为4个步骤:

  1. 理解代码逻辑(数据的增删改)
  2. 创建测试数据
  3. 用测试数据模拟代码逻辑执行
  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/