脷ltima actualizaci贸n el 5 de junio de 2023 por Rakesh Gupta
Gran idea o pregunta duradera:
- 驴C贸mo se puede establecer la Fecha de creaci贸n para un sObject dentro de un contexto de prueba?
Objetivos:
Despu茅s de leer este blog, podr谩:
- Obtenga una comprensi贸n integral del m茅todo setCreatedDate relacionado con las pruebas de Apex
- Establecer la fecha de creaci贸n para el registro de la clase de prueba
- y mucho m谩s
馃憠 En el pasado escrib铆 algunos art铆culos sobre Apex . 驴Por qu茅 no echarles un vistazo mientras est谩s en ello?
- Calcular la cobertura general del c贸digo en Salesforce
- Comprobar si una cadena es nula, vac铆a o en blanco en Apex
Ben Halpern es un desarrollador Jr. de Salesforce en Gurukul On Cloud (GoC) . Cre贸 un disparador de Apex para el objeto Lead.
desencadenar LeadTrigger en Lead (antes de la actualizaci贸n) { if(Desencadenador.esAntes){ si (Desencadenador.Isupdate){ para (Lead myLead:trigger.new){ if(myLead.LeadSource==null && myLead.createddate== Fecha.hoy().addDays(-1)){ //hacer algo } } } } }
Sabe c贸mo escribir la clase de prueba para el c贸digo anterior. Necesita ayuda para crear un registro con una fecha pasada dentro de la clase de prueba.
Enfoque de Campe贸n de Automatizaci贸n (I-do):
Para establecer la fecha de creaci贸n de un sObject en una clase de prueba de Apex, puede utilizar el m茅todo Test.setCreatedDate(recordId, createdDatetime) . Esto le permite especificar una fecha y hora deseadas para el campo Fecha de creaci贸n del registro de sObject dentro de la clase de prueba.
A continuaci贸n se muestran detalles sobre los par谩metros setCreatedDate .
Nombre de los par谩metros |
Detalles |
ID de registro | Representa el ID de un sObject. |
Fecha y hora de creaci贸n | Representa el valor para asignar al campo Fecha de creaci贸n del sObject. |
Adem谩s, es importante tener en cuenta que el m茅todo setCreatedDate no se puede utilizar dentro de los m茅todos anotados con @isTest(SeeAllData=true). Hagamos una pausa aqu铆, familiar铆cese con el m茅todo de prueba s etCreatedDate Apex.
Pr谩ctica guiada (nosotros hacemos):
Con estos m茅todos, puede determinar de forma eficaz si un campo de texto es nulo, est谩 vac铆o o est谩 en blanco en Apex. Veamos esto en acci贸n:
- Haga clic en Configuraci贸n | Consola de desarrollador .
- Para crear una clase de prueba de Apex, haga clic en Archivo | Nuevo | Clase 谩pice.
@esPrueba clase privada LeadTrigger_Test { static testMethod void testSetCreatedDate() { Lead l = new Lead(LastName='myLastname', Company='myCompany'); insertar l; Test.setCreatedDate(l.Id, Date.today().addDays(-1)); Prueba.startTest(); Lead myLead = [SELECCIONE Id, Nombre, Apellido, Empresa, Fecha de creaci贸n FROM Lead WHERE Apellido ='miApellido' l铆mite 1]; myLead.FirstName = 'myFirstname'; actualizar myLead; System.assertEquals(myLead.CreatedDate, Date.today().addDays(-1)); Prueba.detenerPrueba(); } }