测试标准控制器 - Salesforce

时间:2013-10-04 16:16:08

标签: controller salesforce apex-code visualforce

我正在尝试测试此代码。我需要设置控制器并设置参数。 控制器。

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');
}

TEST CLASS

@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');
    }
}

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

谢谢你指出我正确的方向。最终,这对我有用,

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

你建议的方式给出了这个错误“System.QueryException:List没有用于赋值给SObject的行”