Parent queueable class: public with sharing class Qapex implements Queueable{ private list L; public Qapex(List a) { this.L= a; } public void execute(QueueableContext q){ list LA= new list(); for(account f: this.L){ account acc= new account(); acc.Name= 'queable name' + f.Name; LA.add(acc); } INSERT LA; system.enqueueJob(new Qapex1()); } } Child queueable class: public with sharing class Qapex1 implements Queueable{ public void execute(QueueableContext QC){ account ac = new account(name= 'new name'); insert ac; } } Trigger: trigger QapexTgr on Account (before insert) { if(trigger.isBefore){ if(trigger.isInsert){ system.enqueueJob(new Qapex(trigger.new)); } } } Parent queuable test class: @istest public with sharing class QapexTCLS { public testmethod static void QapexTCLSM(){ Account a= new Account(); a.Name= 'test account'; insert a; test.startTest(); system.enqueueJob(new Qapex(trigger.new)); test.stopTest(); account acc= [SELECT ID, name FROM account WHERE ID = : A.ID]; system.assertEquals('test account', a.name); } } Child queueable test class: @istest public class Qapex1TCls { @istest public static void Qapex1TClsM() { account a= new account(name= 'qapextestname'); insert a; test.startTest(); system.enqueueJob(new Qapex1()); test.stopTest(); account ac= [select id, name from account where id= : a.id]; system.assertEquals('qapextestname', a.name); } } ERROR: QapexTCLS.QapexTCLSM Fail System.AsyncException: Maximum stack depth has been reached. Class.Qapex.execute: line 14, column 1 This class name's value is invalid: Qapex1TCls. Provide the name of an Apex class that has test methods.