function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Ola BamideleOla Bamidele 

Writing Test Class – Urgent

Hi Gurus,

I have written a test class for my apex extension page however, it’s only showing 33% coverage and I’m not to sure how to improve it as I’m new to writing test class.

Apex Extension Code:
 
public with sharing class extencntrl{
	
	Turndown__c turnd;
    public extencntrl(ApexPages.StandardController controller) {
        this.turnd= (Turndown__c)controller.getRecord();
    }
    
    public pageReference save()
		{
			Insert turnd; // steps to save your record.
			Pagereference pgref = New PageReference(Label.Turndown_Successfully_Submitted_Form);
			return pgref;
		}
}



Current Test Class showing 33% coverage:
 
@isTest
public class extencntrlTest{
    static testmethod void validateStandardController()
    {
        Account acc = new Account();
        acc.name ='Test';
        insert acc;
        
        ApexPages.StandardController sc = new ApexPages.StandardController(acc);
        extencntrl ext = new extencntrl(sc);
		ext.Save();
    }
    static testmethod void validateStandardController1()
    {
        Account acc = new Account();
        //acc.name ='Test';
        //insert acc;
         
        ApexPages.StandardController sc = new ApexPages.StandardController(acc);
        extencntrl ext = new extencntrl(sc);
        ext.Save();
    }
    
}


Please if someone knows what I need to add to it, please let me know, thanks!
 
Best Answer chosen by Ola Bamidele
Arpit Jain7Arpit Jain7
You are trying to insert turndown__c object record in your controller.. right?
So please update it as below in test class
static testmethod void validateStandardController1() {
 turndown__c acc = new turndown__c();
acc.name ='Test';
ApexPages.StandardController sc = new ApexPages.StandardController(acc); extencntrl ext = new extencntrl(sc);
ext.Save();
}

All Answers

Arpit Jain7Arpit Jain7
Hello Ola,

Insted of Account try to pass Turndown__c object record in test class then it should work.

Hope that should help !!

Thanks
Arpit
Ola BamideleOla Bamidele
Hi Arpit Jain 101,

I just tried that and it didnt work. It gave me some error actaully. Could you please perphaps elaborat on what mean by pass Turndown__c? 

Thanks
Arpit Jain7Arpit Jain7
You are trying to insert turndown__c object record in your controller.. right?
So please update it as below in test class
static testmethod void validateStandardController1() {
 turndown__c acc = new turndown__c();
acc.name ='Test';
ApexPages.StandardController sc = new ApexPages.StandardController(acc); extencntrl ext = new extencntrl(sc);
ext.Save();
}
This was selected as the best answer
Ola BamideleOla Bamidele
Hi Arpit Jain 101, 

Thanks for the reply. However, its now given as error saying "Field is not writeable: Turndown__c.Name"

Do you know why this is?

Thanks!
Arpit Jain7Arpit Jain7
Just comment this line it seems name field is auto number for turn down object. 
Ola BamideleOla Bamidele
Hi Arpit Jain 101, 

It works pefectly now and its at 100% coverage

Thanks!