我正在尝试测试此代码。我需要设置控制器并设置参数。 控制器。
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');
}
}
答案 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的行”