Thursday, 9 June 2011

Testing Apex : Structure of Test Class for Apex Class

I saw a lot of questions on Test Methods on developer community asking how to write test class for apex class. So here I am writing a basic structure of a test class which tests an Apex Class
private class testApexClass{

    private static TestMethod void testClassMethod(){
        //Step 1 : Data Insertion
        //Insert all the data required for your trigger according to your logic written in the trigger
        //Try to give unique values in fields while creating test data, like Name = 'TestAccountName' etc
        //If any configuration setting is also needed in your trigger insert that as well
        //If you create any configuration setting then you will need to create a user also so that mixed dml exception do not occur
        //If class has a constructor with parameter Standard Controller, that means VFP is using this class as extention and has a standard controller then please create a standard controller prior to instance of class

        //Create instance of Class 
        MyClass cls = new MyClass();

        //call the method that you want to test using instance of class
        //assert your results using system.assert and system.asserEquals 
        // IF you have used any static variables


In above structure we have not talked about the advance problems like mixed dml exception and profile base testing. We leave it for other day :)


1 comment:

  1. Thanks so much for this post, mate! I've been looking for info that really clearly lays out the taxonomy of Apex Test Classes, and you nailed it. :)