以下是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));
}
}