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
Sachin Sharma 3886Sachin Sharma 3886 

Test class, Need help

Hi,

I am working on some test class and got stuck at some place, need help.

My Controller class is

**************************************
public class APMP_cloneAgileProcessController {   
    public Agile_Process__c objAgile_Process{get;set;}
    public string AgileProcessId{get;set;}
    public list<Stage__c> lstAPMPStages{get;set;}    
    public APMP_cloneAgileProcessController(){
    
        AgileProcessId=ApexPages.currentPage().getParameters().get('id');
        objAgile_Process=[Select name, Process_Description__c, Active__c  from Agile_Process__c where id =:AgileProcessId];
        lstAPMPStages=[select id, name, Stage_Name__c from  Stage__c where  Agile_Process__c =:AgileProcessId];
    }    
     public PageReference Cancel() {
        return (new ApexPages.StandardController(objAgile_Process)).view();
    }
    public PageReference Save() {
        Agile_Process__c objnewAgileProc=new Agile_Process__c();    
       try{
        objnewAgileProc.Active__c= objAgile_Process.Active__c;
        objnewAgileProc.Process_Description__c=objAgile_Process.Process_Description__c;
        objnewAgileProc.Name=objAgile_Process.Name;              
       insert objnewAgileProc;         
         list<Stage__c > lstnewAPMPStgs=new list<Stage__c>();         
         for(Stage__c stg:lstAPMPStages){         
             Stage__c objstg=new Stage__c();
             objstg.Agile_Process__c=objnewAgileProc.id;
             objStg.Stage_Name__c=stg.Stage_Name__c;
             lstnewAPMPStgs.add(objStg);
         }         
         insert lstnewAPMPStgs;
         
       
       }catch(exception ex){
            ApexPages.Message msg = new ApexPages.Message(ApexPages.Severity.ERROR,ex.getMessage());
              ApexPages.addMessage(msg);
              return null;       
       }
        return (new ApexPages.StandardController(objnewAgileProc)).view();
    }
}
***************************************
And code for  my test class is 
************************************
@istest
private class TestAPMP_cloneAgileProcessController {
static testMethod void MyTest(){
//Inserting test date for Agile_Process__c (Process) object
Agile_Process__c AP = new  Agile_Process__c (name='Test Agile Process',Process_Description__c='Test Description',Active__c=False);
insert AP;
Apexpages.standardcontroller controller = new  Apexpages.standardcontroller(AP);
Test.startTest();        
APMP_cloneAgileProcessController ObjTest = new APMP_cloneAgileProcessController ();
objtest.cancel();
test.stoptest();
}
}
************************************
Its failing the test method and saying that no wrow for assignment.

Kindly help.
Best Answer chosen by Sachin Sharma 3886
Sagar PareekSagar Pareek
Hi Sachin 

You are not supplying  AgileProcessId in your test class.So no rows are being assigned.
@istest
private class TestAPMP_cloneAgileProcessController {
static testMethod void MyTest(){
//Inserting test date for Agile_Process__c (Process) object
Agile_Process__c AP = new  Agile_Process__c (name='Test Agile Process',Process_Description__c='Test Description',Active__c=False);
insert AP;
Apexpages.standardcontroller controller = new  Apexpages.standardcontroller(AP);
Test.startTest();        
APMP_cloneAgileProcessController ObjTest = new APMP_cloneAgileProcessController ();
ObjTest.AgileProcessId = AP.id;
objtest.cancel();
test.stoptest();
}
}

 

All Answers

Sagar PareekSagar Pareek
Hi Sachin 

You are not supplying  AgileProcessId in your test class.So no rows are being assigned.
@istest
private class TestAPMP_cloneAgileProcessController {
static testMethod void MyTest(){
//Inserting test date for Agile_Process__c (Process) object
Agile_Process__c AP = new  Agile_Process__c (name='Test Agile Process',Process_Description__c='Test Description',Active__c=False);
insert AP;
Apexpages.standardcontroller controller = new  Apexpages.standardcontroller(AP);
Test.startTest();        
APMP_cloneAgileProcessController ObjTest = new APMP_cloneAgileProcessController ();
ObjTest.AgileProcessId = AP.id;
objtest.cancel();
test.stoptest();
}
}

 
This was selected as the best answer
Sagar PareekSagar Pareek
The above code must work for you .
Sachin Sharma 3886Sachin Sharma 3886
Sagar, Thanks for your reply. but its not working. and showing same error.

Reason is, The error is coming in the constructor in line 9(in test class) but assigning the AP.id on line 10.

Does it makes sense ?
ManojjenaManojjena
Hi Sachin ,

Please check below code 
@istest
private class TestAPMP_cloneAgileProcessController {
	static testMethod void MyTest(){
	Agile_Process__c AP = new  Agile_Process__c (name='Test Agile Process',Process_Description__c='Test Description',Active__c=False);
	insert AP;
	
	Test.startTest();   
		ApexPages.currentPage().getParameters().put('id',AP.Id);
		Apexpages.standardcontroller controller = new  Apexpages.standardcontroller(AP);	
		APMP_cloneAgileProcessController ObjTest = new APMP_cloneAgileProcessController (controller);
		objtest.cancel();
	test.stoptest();
	}
}

 
Sachin Sharma 3886Sachin Sharma 3886
Hi Manoj,

Thanks for your response, Its working now..

:)
ManojjenaManojjena
Hi Sachin,
Thanks for deselecting myanswer from best answer ,I am not sure what is the reason to take the action after 6 days .

.