You need to sign in to do that
Don't have an account?

Hi i need help with code coverage in this class!
I am a newbie and I find the code coverage very difficult, if anyone can help me, would be grateful,
This is the class.
global class ScheduledProducts implements Schedulable {
global void execute(SchedulableContext SC){
Datetime fivedays = DateTime.now().addDays(-5);
List<Products__c> lastDays=
[SELECT Is_Approved__c, CreatedDate FROM Products__c
WHERE CreatedDate <: fivedays AND Is_Approved__c = false];
for(Products__c a : lastDays){
if(a.Is_Approved__c == false) {
a.Is_Approved__c = true;
}
}
}
}
Thanks in advance!
Hi,
Try the below code snippet as reference:
@istest
class ScheduleTestClassProduct {
static testmethod void test()
{
Test.startTest();
Products__c Pro = new Products__c(Name='testName',Is_Approved__c=false);
insert Pro;
String dateTime113 = '0 0 0 3 9 ? 2022';
String jobId = System.schedule('testBasicScheduledApex',dateTime113 , new ScheduledProducts());
CronTrigger ct = [SELECT Id, CronExpression, TimesTriggered , NextFireTime FROM CronTrigger WHERE id = :jobId];
Test.stopTest();
}
}
For more detail follow below link:
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_scheduler.htm
Did this answer your question? If not, let me know what didn't work, or if so, please mark it solved.
Hi, thanks for you reply.
Eclipse show a error : Field is not writeable: Products__c.Name
Products__c Pro = new Products__c(Name='testName',Is_Approved__c=false);
Thanks!
I think the test should check the products that were created for five days or more, and these are approved after the scheduled run.