2013-10-04 29 views
1

我正在嘗試測試此代碼。我需要設置控制器並設置參數。 控制器。測試標準控制器 - Salesforce

的visualForce頁面有接觸的標準控制器

Public Class myClass{ 
public ApexPages.standardController controller {get; set;} 
public string pid {get; set;} 

    //CONSTRUCTOR 
    public myClass(ApexPages.StandardController controller){ 
     this.controller = controller; 
     pId = ApexPages.CurrentPage().getparameters().get('id'); 
} 

測試類

@isTest 
public class testMyClass{ 

    static testMethod void myTest(){ 
     PageReference pageRef = Page.myPage; 
    Test.setCurrentPageReference(pageRef); 

     //create contact 
     Contact cont = new Contact(name ='bob'); 
     insert cont; 

     ApexPages.CurrentPage().getparameters().put('pid', cont[0].id); 
     ApexPages.StandardController sc = new ApexPages.standardController(cont[0]); 
     myClass sic = new myClass(sc); 
     ApexPages.currentPage().getParameters().put(?); 
     System.assertEquals('something here'); 
    } 
} 
+0

所以......有什麼問題,到底是什麼? – Kamaros

回答

1

感謝您指出我在正確的方向。歸根結底,這是什麼工作對我來說,

Test.setCurrentPage(pageRef); 
ApexPages.CurrentPage().getparameters().put('id', cont[0].id) 

你建議的方式給出了這樣的錯誤「System.QueryException:名單有沒有分配行的sObject」

2
ApexPages.CurrentPage().getparameters().put('id', cont[0].id); 
    ApexPages.StandardController sc = new ApexPages.standardController(cont[0]); 
    myClass sic = new myClass(sc); 
    System.assertEquals(sic.pid,cont[0].id);