SFDC_03(覆盖率)

有时候,我们写完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 }
View Code

接下来的步奏是写一个测试类。

 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),是否有些必须写入项,没有写。

这两种方法是一样的。

 

posted @ 2016-06-14 15:29  诸葛四郎  阅读(228)  评论(1编辑  收藏  举报