Get Started with Apex Unit Tests



以下是Apex单元测试的好处

维护数据安全是我们的首要任务。

我们不会在您的组织中查看或修改任何数据,并且所有测试都在运行于安全数据中心的副本中完成



部署的代码覆盖率要求

在将代码部署或打包到Lightning Platform AppExchange之前测试必须覆盖至少75%的Apex代码并且所有这些测试都必须通过。此外,每个触发器必须具有一定的覆盖范围。即使代码覆盖是部署的要求,也不要仅仅为了满足此要求而编写测试。确保测试您应用中的常见用例,包括肯定和否定测试用例以及批量和单记录处理。



测试方法的可见性并不重要,因此将测试方法声明为公共方法或私有方法并没有什么不同,因为测试框架始终能够访问测试方法。

因此,语法中省略了访问修饰符





将测试类用于单元测试,则将其声明为私有公共测试类通常用于测试数据工厂类



TemperatureConverter.apxc

public class TemperatureConverter {
    // Takes a Fahrenheit temperature and returns the Celsius equivalent.
    public static Decimal FahrenheitToCelsius(Decimal fh) {
        Decimal cs = (fh - 32) * 5/9;
        return cs.setScale(2);
    }
}

 TemperatureConverterTest.apxc

@isTest
private class TemperatureConverterTest {
    @isTest static void testWarmTemp() {
        Decimal celsius = TemperatureConverter.FahrenheitToCelsius(70);
        System.assertEquals(21.11,celsius);
    }
    
    @isTest static void testFreezingPoint() {
        Decimal celsius = TemperatureConverter.FahrenheitToCelsius(32);
        System.assertEquals(0,celsius);
    }
    @isTest static void testBoilingPoint() {
        Decimal celsius = TemperatureConverter.FahrenheitToCelsius(212);        
        System.assertEquals(100,celsius,'Boiling point temperature is not expected.');
    } 
    
    @isTest static void testNegativeTemp() {
        Decimal celsius = TemperatureConverter.FahrenheitToCelsius(-10);
        System.assertEquals(-23.33,celsius);
    }
      
}



默认情况下,Apex测试无权访问组织中的现有数据,除了访问设置和元数据对象(例如用户或配置文件对象)外



Create a unit test for a simple Apex class

VerifyDate.apxc

public class VerifyDate {
    
    public static Date CheckDates(Date date1, Date date2) {
        if(DateWithin30Days(date1,date2)) {
            return date2;
        } else {
            return SetEndOfMonthDate(date1);
        }
    }
    
    private static Boolean DateWithin30Days(Date date1, Date date2) {
        if( date2 < date1) { return false; }
        Date date30Days = date1.addDays(30); //create a date 30 days away from date1
        if( date2 >= date30Days ) { return false; }
        else { return true; }
    }
    
    private static Date SetEndOfMonthDate(Date date1) {
        Integer totalDays = Date.daysInMonth(date1.year(), date1.month());
        Date lastDay = Date.newInstance(date1.year(), date1.month(), totalDays);
        return lastDay;
    }
}

TestVerifyDate.apxc

@isTest
private class TestVerifyDate {
    static testMethod void TestVerifyDate() {
      VerifyDate.CheckDates(System.today(),System.today().addDays(10));
       VerifyDate.CheckDates(System.today(),System.today().addDays(78));
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值