Salesforce之Test Class

     唉,最近天天被測試類搞得心態快炸了 ┭┮﹏┭┮

     接觸過Salesforce 工作的小夥伴們應該知道,Salesforce 雖然一直說提倡無代碼開發,儘量使用標準功能來實現需求,但是有時我們仍然不可避免的的會要去寫一些代碼.

     使用標準功能的話,Salesforce會自己負責代碼的質量;

     對於自定義的一些功能的話,Salesforce爲了確保我們的代碼不會在生產中的任何情況下中斷,也制定了一套自己的衡量標準,比如:

     Salesforce的程序的代碼覆蓋率必須達到75%時,纔可以進行部署

     一般的Apex Code,就像那些出現在Trigger裏,出現在Controller裏的代碼,
    測試類都很好寫,就按照
    1. 準備測試數據
    2. 執行業務邏輯(功能)
    3. 斷言執行結果
    按套路打就行了。

   (溫馨提示: 望小夥伴們每次寫完程序,記得在測試類裏面測試到位啊,有漏了的點的話,下次改完程序再測試的時候難度將會有所增加,所以爲了方便他人,同時也爲了自己的方便,因及時修改測試類)

  小喵記得有一次改測試類,結果發現測試類跟程序 之間差好幾個版本,因此只能花時間慢慢一步步的測┭┮﹏┭┮

 所以爲了方便,還是希望小夥伴們修改完程序,及時把測試類修改到最新版本.

除此之外,另一些apex code,需要特別的測法。 Salesforce作爲CRM系統,無法避免的要與其他系統進行數據交互。 大部分情況,我們只需要把salesforce的標準集成文檔和權限已經配置妥當的賬號,提供給對方就好, 但是,當我們需要將業務封裝起來的時候,就需要自己建WebService。

  下面小喵簡答說一下編寫測試類的一些要點 :

   1.必須以@isTest註解開始類,然後只有Salesforce會把這個類當作測試類。

   2.將測試類保持爲私有的,最佳實踐是將測試類命名爲原始類或觸發器名稱+‘test’,例如 : 程序爲 CampaignController ----> 測試類爲 CampaignControllerTest

   3.測試類的方法必須是static、void,並且必須使用testMethod關鍵字。 例如 :

static testMethod void 方法名(){
   //方法體
}

   4.在實際測試運行之前,準備需要存在的測試數據。現在每天有多種創建測試數據的技術,例如,setup方法、靜態資源等 . 

   5.使用 Test.startTest() 和 Test.stopTest()  以確保代碼的實際測試使用一組新的調控器限制進行。這些方法幫助您在實際的測試代碼執行之前重置調控器限制。

   6.一旦測試代碼在 Test.startTest() 和 Test.stopTest() ,則必須使用assert語句來測試實際代碼是否正確執行並按預期給出結果。舉個例子,我們正在測試這本書的價格是否定在90美元。如果這個assert語句返回false,那麼您的測試類將失敗,並且會讓您知道代碼中存在不正確的地方,您需要修復原始代碼。

   7.在理想情況下,我們應該在測試類中編寫多個方法,很少有方法應該測試我們的肯定用例,其他方法應該測試我們的否定測試用例。

 附幾個關於測試類的鏈接幫助小夥伴們學習:

     Test class trailhead  

     Add a Test  Class  

     今天的分享就到這裏了,

  希望小喵的分享對大家學習有所幫助 

  (^_^)~喵~!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章