 Hello everyone. I'm Sanjay Gupta. I welcome you on Sanjay Gupta Tech School. So today we are having day 51 and in this session we will continue Apex Test Class sessions. So yesterday I demoed you like how we can implement Apex Test Class as a beginner, right? And today we'll see how we can implement Apex Test Class for Trigger, right? So once again, welcome everybody and let's wait for a couple of minutes so that more folks can join. And then I will be starting the session. So meanwhile, like if you have joined this session for the first time, so if you want to know about me, so you can go through the slide. In this slide, everything about me is listed and I'm just helping this community so that people who are students, freshers and professionals, those who want to build their career in Salesforce ecosystem, they can learn everything freely. So this is about me and these are some virtual learning best practices. So you can go through all these points and those who are already following. So that is very great. And if I move forward, so be consistent, like everything is connected and Salesforce is very vast ecosystem. And here we have lots of things to learn under admin and development, right? So admin bootcamp is already completed this in this phase, I'm just explaining all the development related stuff. So be consistent and do regular practice. And if you want to become part of a self help group, which is available on telegram, so you can just scan this QR code and you will be part of that group so that you can discuss your doubts there. And we are right now under week 14 where a pigstice class sessions will be there. And then next week I will be covering as in Krona Cpix, right? And if you have not followed the like organization on different social media platforms, so do follow. And all the relevant links are available in the video description. So you can just see session tracker, you can see the exercise sheet. So all all the relevant links are available in the description. So just share this channel because right now this channel is running two boot camps in parallel. One is on Salesforce. Another one is cybersecurity. And once cybersecurity will come, we'll get complete. So I will be announcing one more boot camp. So I'm just working on that. So just follow and share the information with others. And now let's start with a pigstice classes for trigger. Right. So now moving forward, jumping on the topic. So like in last week's you already gone through how we can implement triggers. Now we need to understand how we can write test classes for the code that we implemented in trigger and trigger handler. Right. So yesterday I gave you the insight like how we can implement the test class. So those test classes we implemented for the apex class. Now you will be writing test classes where your trigger is available, trigger handler is available and you have used some s objects also. Right. So what I'm going to do moving forward and I will be implementing a few examples. Not all trigger test classes I will be implementing because those are already available on YouTube in form of a playlist. But we'll be discussing few examples so that you can ask questions and we can have a discussion on the doubts. Right. So we have already implemented account trigger and account trigger handler. So I will be implementing test class for a few of the method those are available under account trigger handler. Okay. So moving here. So I have already opened my account trigger. So here you can see account trigger is available. And yep. So here you can see various events are available. And with these context variables, various methods are called. So first of all, what I'm going to do here, I have a method which is create opportunity. Right. So I'm going to call this method and this method is basically creating opportunity related to account. Okay. So for this method, I'm going to implement a test class. So test class will be created for this whole account trigger handler. And first of all, I will be covering this method. I hope you remember. So whenever account is created, we need to create a related opportunity. So it is basically that and here through database class method, we are trying to insert so that we can see the error messages. And here it is called in is after. Right. And now what why what I need to do, I'm just copying this class name and clicking on file new and creating new apex class. And as per best practice, you need to remember, whenever you are creating any test class for any trigger handler, so you just need to add or you just need to append test at the end. So the name will be account trigger handler test. Right. So now I'm just clicking on okay, so that new test class will be implemented. So as I told you yesterday, like whenever we implement any test class, so we need to write at the rate is test. So right now at top right corner, you can see run test button is not available. Here we can see only go to button. Now, if you if you want to have that run test button, so just write at the rate is test, save your class and you will be having run test button. So here you can see as soon as I saved the class with at the rate is test annotation that run test button is available. Now, here you can write private public both. It doesn't make any difference. So if I write private, then also my code will work fine. Then for testing purpose, I'm going to implement a test method here. Okay, so again, private or you you can just ignore private as well just write static void create opportunity test. And then here you can write the code. So right now what we are doing, we are just going to create a method for test method for this create opportunity, right? So here we need to create the data. So whenever you are implementing test class for trigger, so for trigger test class, basically, you just need to create some data so that basis on that data your trigger will be called. So this create opportunity method is called an insert. So what we need to do, we need to create some account records and we need to insert them so that this method will be called and related opportunities will be created. And then we need to check whether related opportunity is created or not. So data creation, trigger calling and validation like whether opportunity record is created or not. So everything we need to do with the help of code, right? So now I'm going to show you how we can implement this. And then if you face any issue, any question that you have, so just post your question in the chat. So those questions I will be answering, right? So now I'm going to implement the solution for this. So first of all, what I need to do, I just need to create some account records. And as per best practice, everybody needs to remember whenever you are writing test methods, so you need to write test methods for bulk data. So here I'm going to create list of account. Then I'm just implementing a loop. So with the help of this loop, I will be creating 10 account records. So this way I'm creating one instance. And then what I need to do, I just need to fill the fields. So ACC dot name. So here I'm writing test plus I so that all the account names will be unique. Then we have active field. So in my org active is required. So here I'm just setting it to yes. And now after this, what I can do, I can just add this account into the ACC list. So ACC list dot add and then ACC. So this way, the newly created account is basically added into this account list. Now, we need to write test dot start test and test dot stop test. So these are two methods that we can implement in our test method. So the use of these two methods are like inside these two statements. If you write any DML, let's say I'm writing insert ACC list. So inside these two statements, if you write any DML, so for that DML, governor limits will be refreshed. So what does it mean? It means in your test class, if you have two test methods, I'm repeating in your test class, if you have two test methods. So in those two test methods, if you don't write start test and stop test. So for both the methods, common governor limits will be there. But if you want separate governor limits for each method. So in that case, what you can do in each method, you can write start test and stop test and whatever DML operation you want to perform that you can write inside this statement. Okay. So whenever we are going to write this insert account list, so account records will be inserted. And then after this DML operation, now we just need to validate whether opportunity is created or not. Okay. So our first part was data creation. So here we just created the data and bulk data, not single record. We created lots of records. And in second part, we just inserted all the data. Now we just need to validate whether our code is working fine or not. Right. So now what I'm going to do after this insert operation, the account records will be created. Along with account, there should be related opportunities. So I need to apply SOQL like if a part if account record is inserted, so related opportunities should also be inserted. So I just need to query the data. One more thing here you need to remember whatever data we are creating inside test class that won't be available under your org. So here we are trying to create 10 accounts. So these 10 account records you won't be able to find in your org. So these are just for testing purpose. So if you run your test class or data will be created and once test is finished, all data will be erased. So the data which you are creating in the test class that won't be available under your org. So now here I'm just going to write list of opportunity, OPP list. So what I'm going to do I will be querying related opportunity those are created related to these accounts that we created above. So select ID from opportunity where account ID equals to colon ACC list of zero dot ID. Right. So what does it mean? Here what we are trying to do we are trying to query opportunities which are related to account and I'm just passing 0th account ID like first record from this list. So we inserted 10 account records. So I'm just querying the first one if first one is having the related account sorry related opportunity. So we'll see like we'll make sure like other accounts are also having related opportunity. Okay, so here what we need to write we can write system dot assert. So here I'm just picking this one system dot assert and here I need to write the condition. So in condition I'm checking OPP list is not equals to null. Right. If it is not equals to null, then it will pass. If opportunity list is not equals to null, it means opportunity list is having some data. So this condition will be true. So this assert will pass. If it is failing. So here we can show a message opportunity is not created. Right. So this way here are the test class method is implemented. So we are querying the opportunity those we created through code through account trigger handler. So account we are creating from here, but opportunities will be creating automatically through the code. And here we are just testing whether opportunity list is null or not. If it is null, then it will break here. If it is not null, it will be passed. Okay, so this way, like your all the test methods will be divided into three sections. First of all, you will be creating the data, then you will be the ML operations, your triggers will be working. And after that process, you can just query the data and you can apply assert or assert equals. And in test classes, writing assert or assert equals are necessary. This is part of best practice, because only through these methods, you can validate whether your code is like working fine or not. Okay, so now what I'm going to do, I'm going to run this test. So you can see it is successful. There is no error. It means that code is working fine. It is basically creating an opportunity. Now we need to check the code coverage. So if I come here and click, so you can see 32% code is covered. And here this code is completely covered. Only this part is not covered because it is expecting like few records will be failing. It is expecting few records will be failing. So in that case, what we need to do if you want to cover these lines. So here, you need to create two different data sets, like five record five records, you will be entering where proper values are available and five records you are creating where some mistakes are there, right? So in that case, that that false part will be running like your failure records will also be checked. And these lines will be covered. Okay, so if I try to show you that so what we can do. So this way, like I just iterated this loop again. So in these 10 records name and active field both are populated. And in these 10 records only name is populated. Now I'm just saving this code and let's see what happens. Okay, it is not showing things. So let me just refresh the page. So opening this class again and running this one more time. And this time you can see it is failing. So here you can see it is showing the error messages like this field is required. So it is due to that required field. So we won't be able to test that piece. Okay, so I'm just removing this part. So our validation is firing. So through that validation like here it is not working fine because we are using insert. So what we need to do here also you need to apply database class method. If okay, so let me just do that. So I'm just copying the statement from here. So here instead of writing this, I'm going to write the statement and here I'm passing a countless right so I'm running this test again. And this time you can see it is passing right. So if you write insert so in that case if records are failing so whole list will be failed. But if you use this so it is completely covered. Now if we check the code coverage so come here and still it is not covered. Okay, so the reason is why it is not covering because here we are actually inserting the opportunity list. And for opportunity like here we are providing all the data. So that's why no record is failing. So this this piece here we won't be able to cover right. So sometimes there are situations like through trigger if you are like through test class if you are firing any trigger. So few lines you won't be able to cover because this this code is actually running with the help of this code. And while writing test class we we can't modify this code. Right. So this way, I hope you understood like how we can implement a test method for particular apex trigger handler. Right. Now moving ahead and I'm going to explain one more example. But before that, let me take some questions. I can see lots of questions are available here. Okay, Nagendra is asking about at the rate run as yeah, it is very simple. Like if you want to run your test method in respect to particular users. So for that purpose, we basically use at the rate run as so I will try to cover it tomorrow. Yes, Nana. So in test class, we have to cover both positive and negative scenarios. Yes, Vamshi, if you open the lock, so there you can see the governor limits. So very quickly Venkatesh in one method, you can use a start test and stop test once. But in your test class, if you have more than one method, so in each method, you can use it this pair once. So Venkatesh, these 10 records won't be stored in the org. I already explained. So they are just for testing purpose. So Sachin, basically in test class, we are creating account record. If you see the process here, we are creating account records, then we are applying these insert statement. So through this insert statement trigger will fire, right? And trigger in trigger insert, we are just having this create opportunity. So this create opportunity will be calling this method and it will be creating opportunities for you. So this way it will be working. So through this method opportunities will be created. So what we can do from here, we can query and we can validate whether opportunity is created or not. Okay, and you will see like few other codes are also covered through this code. So here this one is covered. And if I go below, so this one is covered. So insert piece is covered. And the methods which are related to update, those are not covered here. Right. So this way, like you can implement your test method and query the data which is created through trigger. Yes, Vamshi, you can use assert not as well. But it depends on the scenarios like which method to use assert assert equals or assert not equals. Okay. So right now, like this, the Gocha Pro is asking test coverage is 32% because here, if you see, I just implemented one method. In this test class, I just implemented one method. And that I implemented to cover this one. For these methods, you need to implement separate methods. Here, you need to implement more methods, more test class methods you need to implement so that these functionalities you can cover. So you need to create more data and as per these methods requirement, you need to set the data and perform the operations, right? Then these will be covered. So next is so Vamshi is saying we can use test dot is running test to skip code coverage. So but for production, I think we I never use this method. So I also need to explore this. Next is if inserted records are not saved in Salesforce org from where we will be fetching the data. So it is like in cash. It is in a temporary memory. And from there we are fetching it is like the the it is the way test classes works. Whatever data you are creating it is available for temporary purpose. The duration you run your test class for that duration, your data will be available. Once your test class is finished, then data will be gone. So Mohit, no, you don't need to learn advanced Java. If you know the core Java concepts, then you can learn Apex. Vamshi know in test class, whatever data you are creating that will be that will not be saved anywhere. It is for temporary purpose. Okay, Roger hockey king. So I don't know what is your actual name. So if you can type your name, then I can take your name. And if you can ask questions, so that will be good. And thank you for appreciating my efforts. Naina Yes, for one object, basically, we implement one trigger one trigger handler and one trigger handler test. So this is the best practice but for one trigger, if you have more than one trigger handler classes, so they can be more than one trigger handler test classes. Yes, Sachin. So if you write insert account, so accounts will be created automatically through test class. And basis on that your triggers will be working automatically. Okay, so I hope I answered all the questions. Now moving forward. Okay, so now I'm going to implement one more test method. Okay, so right now what I'm going to do I'm going to write the test method for this populate rating. Okay, so here we have this populate rating. So what is happening here? We are checking the industry if industry is not null and it is equals to media. And in case of update also if earlier industry was something and now it is media, so we just need to populate rating as hot. So this is our trigger scenario that we implemented earlier. Now if you want to implement test method for this, so here we have two operations. One is for insert and one is for update, right? We have two operations. So two separate test methods we can implement one for insert and one for update. So that you can say like you are doing you are implementing all the cases, right? Insert as well as update. So now if I come here, so this way you can write two methods. So I'm just copying and pasting it. And for both the methods you need to write at the rate is test. So it will be for update, right? So this method will be for insert and another one is for update. And here we need to create the data and then in insert one will be inserting in update one will be inserting first and then we'll be updating and then assert will be applied. Okay, so now I'm going to implement the code. So first of all, I just need to create the data. So in above method, we also created the data, right? So what we can do, we can just reuse that data here as well. So what I'm going to do, I'm just copying this code from here and pasting it. So what I did, I just created a list of account. Then this loop is iterating for 10 times so that 10 account records will be created. Now here I can write test dot start test, then insert a cc list, then test dot stop test, right? And now here I need to implement the SQL. So two parts are completed, we created the data, we applied DML operation so that trigger will be called. Now we just need to query. So here what we are doing we are creating account and we are updating account only like account rating should be hot. So once this insert operation will be done. So I'm just querying account only. So naming it as updated list, select rating from account where ID equals to ACC list of zero dot ID, right? So the first account record which is available in this list that account records ID, we are comparing with the ID of particular account record. So we are like after insertion of these account records, those account records will be automatically updated through that trigger that you need to assume. And once those account records are updated, so we are just querying those updated account records. So I'm just querying the first one, right? You can query all account records as well. But in that case, to apply assert again, you just need to pick anyone. Otherwise you will be implementing assert in the loop, right? So here what I'm going to do I'm writing system dot assert equal. And here we need to provide two things one is expected and one is actual. So here under expected, I'm writing hot. So expected should be hot and actual is available under this updated ACC list. So from here, this way I'm writing so updated account list of zero, a zero index and then the rating, right? So if this account record that we updated, if it's rating is hot, then this assert will pass. And initially you can see rating we didn't provide provide. But here what we need to do, we need to provide industry value industry should be media as per the requirement, right? So at the time of insert if industry is media, then only rating will become hot. And this I'm just making as comment. And now I'm just saving this. So this way you can just implement your test method for insert operation. Okay, so I hope this way you understood the process. So it was quite easy. First, we need to insert the data, then apply these start test, stop test. And right now what you can do, or what you can see, we have two test methods. So this is the first one create opportunity test. Here we created the data, then we inserted and we applied this start test, stop test, and then queried. So for this method, separate set of governor limits will be used. When this method will be evaluating so for this process, insert is a CC list. So whatever trigger will be calling and what all other processes will be executed. So for these separate set of governor limits will be there. So in each test method, you can use this pair one time. Okay, and then just click on run test and it will start its execution. So here you can see this time to methods executed and both are successful. If I go here and check, so right now code coverage is 40%. So 8% is increased and here you can see this whole method is covered through insert only it is covered because everything is checking here. We have if conditions that will be evaluating and account rating will be hot. So this way it is working fine. But we need to test both positive and negative test cases. So we need to understand how we can write that. So for update also, we'll be implementing the code. So I'm just copying this code and pasting it here. And initially, let's say industry I'm populating as so I'm just checking industry values from the pick list. So let's say I'm picking chemicals. So initially, I will be providing chemicals, right? I'm inserting it. Now, what I'm going to do, I'm implementing a loop on the inserted list. And then ACC dot industry equals to media. And after completion of this loop, I'm writing update ACC list. And this test dot stop test I'm shifting from here to here. So that both DML operations will be under that pair, right? So insert will be done, account records will be inserted. After insert, I'm just implementing a loop so that I can update industry field to media. And then I just wrote update DML, right? So that update trigger will be working. And then I can just write this code. So I'm just copying it and pasting it here. So updated account records I'm querying and here assert equals will be same. Right? So this way, you can implement positive and negative test cases. So I'm just saving it. And if I click on run test, so now three methods will execute. And this one method is failing and populate rating update is failing. So here insert is failed. Okay, attempt to dereference a null object. So okay, so at insert, we didn't provide. But why it is failing? Because in insert chemicals is there. Let me just check the error message again. So line number 73. Yep. So this insert is actually not working. So we need to figure it out. So here, old map is null and industry not equals to null. Okay, anyone having any suggestion, I'm just trying to identify this error if you have any suggestion in your mind. So you can just let me know. So here, old map is null. So it means it is insert industry is not equals to null. And media so it will work otherwise, or part will be evaluated. So it is not null. So this won't work. But why that is failing. So at line number 87, it is breaking. Okay, I got the issue. So what is happening? If it is failing, so it is coming here. So here we just need to apply one more condition. ACC old map not equals to null. If old map is not null, then only it will be performed. So actually, what is happening for insert? It is just trying to check this old map. And in case of insert old map is basically null. It is having nothing. So that's why null exception is there. So what we can do, this is for insert, like old map is null. So it means insert operation. If old map is not null, then it is for update. So in case of insert, this will become false. Now I'm just saving it. I think in one of the session earlier, also it was breaking. So now it is fixed. And if I come here and run this test again, so it will be working. So you can see now code is working fine. It is showing no error. And if I come here, so you can see test coverage is now 72% right, because we implemented update operation. So other update methods are also covering little bit. Right. So that's why cover is increased. Okay, so I hope this way you understood how we can implement different different methods and like all the edge cases we need to test. So right now, total three methods I implemented. And I hope you understood now I'm just coming to the questions. So deployment, we'll be covering after the development phase. So known again, I don't know Telugu, I'm from Jaipur, Rajasthan, so pure, like English or Hindi only no Telugu. So Venkatesh, if we have two if constructions then two different methods. This I demoed yesterday. So if you have if else, then you need to write two separate methods. So if you have two if constructs, then also, like you need to have two separate methods. So soon as locks will be available here if you go, so here locks will be available. So you can see here locks are generated automatically. So this is showing error as well like insert failed. So from here, you can see the locks. If you want to generate the lock so you can go and under setup, you can just create the locks. So from here, you can search for locks. So debug locks. And here you can create your logs. So click on new. And here you can fill the details. Right? So traced entity name. So from here, like you just need to select the user, right? So from here, you can select the user, then start date, expiration date and debug level. So if you click on look, look up, so there are different debug levels, so you can select. So this way you can just set the debug logs from here. Otherwise, under developer console, you can find all the logs for all the processes. Okay. Well, Nala Vamshi is asking, can you please explain 32 line in the test class? So line number 32. So yeah, so line number 32 is basically checking opportunity list. So what we are trying, we are trying to fetch opportunity, which is related to account. If opportunity list is having some data, so it won't be null. It means related opportunity is created through trigger. So your trigger is working fine. But if it is null, it will fail. It means trigger is not creating any related opportunity. Okay. So next is Ashok is asking in SOQL, ACC list of zero, why we are using zero. So Ashok, this is basically a pointing index. So in list, we have indexing. So in list, if you want to fetch the first record, so you can just pass this zero so that you can have the first record. Yes, NS, we can go with database dot insert as well. So if you use a variable, if you use a variable like list set map, in that case, you need to use colon after equals. So for this Ashok, you need to watch apex related session beginner ones. So if you can find the session tracker link in the description of this video. And here you will find all these basic apex sessions, there you will be able to understand like how we can write the code. Yes, Vishal, I already applied null check for old map. So issue resolved. So Mohan Krish, like for custom objects also implementation will be same, we just need to make sure the API names. So implementation of test class is similar for both standard and custom object, that doesn't make any difference. So NS, if you do more practice than only you can overcome with the problems. This is the only solution. There is no magic, like if if I do a magic and you start writing triggers and test classes, so you are not chat GPT actually. So if you have power off chat GPT, then only it can happen. Otherwise, you need to practice. So Jana, if you set up a new debug, so latest execution locks, you can see, right? So Yaram interview question document links are available in the telegram group. So if you are member of that telegram group, you can find there. Okay, so I don't see much question. So if you have more question, please ask. So I have already explained how to implement test classes. And if you want to have more insight on test classes, how to implement test classes for trigger. So here you can see there is a playlist link which is for trigger scenarios. So if you go through with this trigger playlist, so it is basically for a big trigger and test class, right? Let me copy this link and I'm just pasting this link in the chat so that you can have it. Right? So this playlist link is for trigger and test class. So Vishal cracked one more joke today. And yeah, so if you can become human chat GPT, you can write otherwise, the only solution to write code efficiently is practice, right? Hi, Akash. So I just shared the link for that playlist. So it is available here also. And like today, we covered this session how to write a test class for trigger and I cannot explain all the methods. So you just need to go to this go through the scenario. So I just gave you the basic idea, like how we can implement now, you just need to go through the different different scenarios where trigger and test classes are implemented so that you can understand. And tomorrow I will be explaining how we can implement at the rate test setup and how we can create test utility class for bulk data creation. So in today's session, you saw like, I just created account records again and again. In each method, I'm creating account records. So this problem I can resolve with the help of this test utility class. So we'll be creating account records commonly and then we'll be reusing that data in different test methods. So these two features I will be explaining tomorrow. And we'll see few best practices as well, related to test class. So tomorrow this test class topic will be completed. And here also, we have one playlist link, it is same, it picks trigger and test class. So you can go through and someone was asking about interview questions. So in the sheet, after every topic, you will find links of interview questions and Udemy courses. So all all the things resources are available here. So no need to go here and they are searched on internet, go to different telegram groups, no need. You just need to follow this session tracker. And I bet like, I can bet nowhere you will find the this kind of detailed session tracker, where everything is available altogether. And here you can see this exercise sheet link is also available. If you if you open this. So here you will find a comprehensive exercises day wise. So those who are new, they can just go through this these exercises and you can prepare yourself for Salesforce admin, development, associate, like nowadays, lots of folks are appearing for associate certification. So for associate certification in this session tracker, if you just go through starting 21 sessions till this project. So everything you will be covering and in first time, you will be clearing your associate certification, right? So once again, I'm going to share the link of the sheet in the chat so that you can copy. Otherwise, I hope everybody is having the link and links are available in the descriptions as well. So Mohan, I didn't get your question. Can you please elaborate more? So Akash, like if you know the core Java, then that is enough. And Sures factory method and test utility both are same. So Sunil, if you want to cover add error in test class, so what you need to do, you need to watch this one like if I show you here, so there is one scenario if I go and if you see the before delete operation, if you see these before delete operation, so here I have explained like how you can cover add error. So try catch add error. So these methods are these scenarios you need to watch. So there are lots of scenarios like you can see 22 scenarios are available here. All these scenarios are related to trigger and I just demonstrated how to write their test classes as well. Now it's up to you like how much practice you do. So I just gave you brief insight in the live session I cleared or all your doubts. Now it's up to you to utilize these free resources. So I repeat like nowhere you will find this much free resource available where I'm discussing all your doubts on daily basis. People are sailing paid courses, pre recorded videos, they are misguiding. I'm not doing that thing. Now it's up to you how to utilize these resources. And if you have enough money, so you can go and buy those paid courses, then also you need to do practice yourself. So like I can say this only and rest is up to you. So everything I have shared and if you need this link so I can share this link as well. This is my website which is study salesforce.com and it is quite popular. So I just shared this link as well you can go through with this link. So Ashok we are we are mentioning indexing because we just need to fetch only first record we we are not trying to fetch all the records. So that's why because from that bulk, we are just fetching random record so that we can validate through assert equal whether it is working fine or not. So someone like NS is asking how many months does it take to correct the interview? So this bootcamp is for six months. So in six months, you will be understanding the Salesforce completely like admin and development. Then we have cloud specific sessions. So I think minimum six months you need to prepare yourself so that you can have proper interview session where you can answer things because if you implement things practically you will be able to answer the questions. And after six months rigorous practice, I think you can crack any interview. So this bootcamp is kind of an internship. Even in internship, no one will be paying this much focus. So don't take this bootcamp for granted. I'm putting lots of efforts. People are getting benefited. People are getting certifications done. People are getting jobs as well. So please utilize this opportunity and do lots and lots practice because only through practice you will be understanding the concepts. Right? And next month, like Apex, Visual Force integration sessions will be done. And from June, lightning web component and lightning or a component sessions will be done. Right? So it will take around one to two months. So just just go with the flow. Believe in me. There are less opportunities in the market. So this is the best time to practice things, to learn new technology. And then whenever market will boost up, there will be lots of job. And if you have knowledge, you have done lots of practice, you have certifications. So soon, like you will be able to crack the jobs. Thank you, everyone, those who are appreciating my efforts and I'm doing this for the community. So Ashok, we are inserting bulk records so that we can check whether trigger is working fine for bulk record insertion or not. And then after trigger execution, we are just checking any random record, whether that record is like having that particular expected value or not. So this way, we are checking it. Yes, Sanjit, in next week, I will be covering asynchronous apex. So there we'll discuss about the bad jobs. Right? So I'm discussing each and everything in detail. And tomorrow, like we'll see the apex guide as well, where a few best practice related things are available. But I think this much information is enough related to test class and tomorrow, two more topics will be covered related to apex test class. So I think this is more than enough. And if you have like basic or beginner level knowledge, and then you need to implement any difficult test class, so you can just Google search a few code and then you just need to arrange the code as per the requirement. Right? So you should be smart enough to implement those code. Okay, so thank you, everybody. I take your leave because after 30, 40 minutes, we have one more bootcamp. So I need to be there as well. So I just need a break. And tomorrow, same topic, we'll be discussing. So be there. Right? So I'm just checking if I missed any questions. So thank you, Akash. And thank you for comparing me with great personality. But I am not that much great. I just doing my bit for the community. Yes, swamshi. In next week, every day, I will be covering one topic related to asynchronicipic. So it will be in detail. And you can you can see, don't doubt everything I am explaining in detail. We are discussing so much. So I'm just trying to cover everything. But few few pieces will be left that you can try through blogs, through documentation. So if you have enough knowledge, as beginner level, then I think few topics you can understand yourself as well. Great Chandan, I appreciate your effort. So if you go through all the LWC related videos, so whenever we'll be having live sessions, so you will be able to ask questions. That is great. Thank you, Mohan. Thank you, Sanjit. Thank you, Adaro. So okay, so I take your leave. Thank you so much guys for joining today's session. See you tomorrow.