有时候,我们写完controller之后要求测试代码的覆盖率。
下面写个简单的例子。
1 public with sharing class CL_00_action { 2 public String getId{set;get;} 3 public list<A_NO_1__c > uList{set;get;} 4 public String println(){ 5 String a = ‘hello‘; 6 String b = ‘today‘; 7 String c = a +‘ ‘+ b; 8 return c; 9 } 10 public list<A_NO_1__c> selectUser(){ 11 uList = [ SELECT Id, Name FROM A_NO_1__c where Id =:getId ]; 12 if(uList.size()==0){ 13 return null; 14 } 15 return uList; 16 } 17 18 }
接下来的步奏是写一个测试类。
1 @isTest 2 public class CL_00_testAction { 3 static testMethod void test1(){ 4 Test.startTest(); 5 CL_00_action cls = new CL_00_action(); 6 cls.println(); 7 Test.stopTest(); 8 } 9 @isTest 10 static void test2(){ 11 CL_00_action cls = new CL_00_action(); 12 A_NO_1__c u = new A_NO_1__c ( 13 name = ‘test‘ 14 ); 15 16 insert u; 17 18 cls.getId = u.id; 19 Test.startTest(); 20 cls.selectUser(); 21 Test.stopTest(); 22 } 23 }
@isTest是必须写的,这样控制台才能识别,
测试的时候测试内容是Test.startTest();和Test.stopTest();之间的方法。
我要测试的类里有两个方法,第一个println()方法只要直接调用就可以,
第二个startTest();方法要求数据库里有数据才可以被检索出来,所以要自己先造数据,插入数据库才可以成功测试。此时这条数据并不是真正的写到数据库里,测试完就没有了。测试的具体步骤如下。
这就是步骤了,如果你想看你的代码里哪些代码被执行双击荧光色部分,蓝紫色的部分是跑到的,红色是没有。
如果在标1 的比方有错误可按照步奏排查。
有一些常见错误,你要插入的数据是否允许被写入(常见为ID,name),是否有些必须写入项,没有写。
这两种方法是一样的。
时间: 2024-10-11 01:37:00