En las pruebas de Apex Unit, por qué no MyConrtoller myCont = new MyController (StandardContoller); llamar establecer la página actual?Apex ¿por qué el controlador estándar no establece la página actual al crear el controlador (Prueba de unidad)
Por ejemplo, si tengo esta página:
<apex:page standardController="DB_Object__c" extensions="MyExtension">
<apex:form id="detail_list">
<apex:detail />
<apex:actionStatus id="readStatus">
<apex:facet name="start">
Loading, please wait...
</apex:facet>
<apex:facet name="stop"><apex:outputPanel >
<apex:commandButton action="{!readData}"
value="Update Data"
rerender="detail_list"
status="readStatus"/>
{!remainingRecords}</apex:outputPanel>
</apex:facet>
</apex:actionStatus>
</apex:form>
</apex:page>
Si mis pruebas de unidad crea esto:
DB_Object__c dbObj = new DB_Object__c();
dbObj.Name = 'test';
dbObj.Setting = 'aSetting';
insert dbObj;
Test.setCurrentPageReference(Page.Demo);
ApexPages.StandardController sc = new ApexPages.StandardController(dbObj);
MyExtension myExt = new MyExtension(sc);
¿Por qué fracasan ApexPages.currentPage().getParameters().get('id');
? Tengo que hacer:
ApexPages.currentPage().getParameters().put('id',dbObj.id);
¿Cuál es el punto de paso en el dbObj
a StandardController
si no se hace nada con él? ¿La intención es enviar un objeto en blanco y la extensión usa este objeto? No parece haber mucha documentación para StandardControllers y Unit Testing ...
¡Gracias!
Aunque esto funciona, realmente no lo hace ideal. Pensaría que si paso un objeto no nulo usaría ese objeto para representar la página en lugar de crear un nuevo objeto con ella ... – rjbez