W testach Apex Unit dlaczego MyConrtoller myCont = new MyController (StandardContoller); zadzwoń ustaw aktualną stronę?Apex dlaczego standardowy kontroler nie ustawił bieżącej strony podczas tworzenia kontrolera (test jednostki)
Na przykład jeśli mam stronę:
<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>
Jeśli moje testy jednostkowe tworzy to:
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);
Dlaczego ApexPages.currentPage().getParameters().get('id');
nie? Muszę zrobić:
ApexPages.currentPage().getParameters().put('id',dbObj.id);
Jaki jest sens przechodzenia w dbObj
do StandardController
jeśli nie nic z nim zrobić? Czy intencja, którą wysyłasz, jest pustym obiektem, a ekstencja używa tego obiektu? Wydaje się, że nie ma dużo dokumentacji dla StandardControllers i testów jednostkowych ...
Dzięki!
Chociaż to działa, tak naprawdę nie czyni go idealnym. Sądzę, że jeśli przekażę obiekt niepustny, użyłbym tego obiektu do renderowania strony, zamiast tworzenia z nią nowego obiektu ... – rjbez