Activity Forums Salesforce® Discussions Why do we need to write test classes and how to identify if a class is a test class in Salesforce?

  • shariq

    Member
    September 22, 2018 at 10:41 am

    Software developers from around the world will unanimously agree that writing code in test classes makes debugging more efficient. Why? That is because test classes help in creating robust and error-free code be it Apex or any other programming language. Since Unit tests are powerful in their own right, Salesforce requires you to write test classes in Apex code.

    Why are they so powerful? Because test classes and test methods verify whether a particular piece of code is working properly or not. If that piece of code fails, then developers/ testers can accurately locate the test class having the faulty bug.

    Test classes can be determined easily because every test class will be annotated with @isTest keyword. In fact, if we do not annotate a test class with @isTest, then it cannot be defined as a test class. Similarly, any method within a class which has the keyword testMethod, is a test method.

  • Parul

    Member
    September 22, 2018 at 1:14 pm

    Testing is a key and critical component to successful long term software development process. Salesforce.com strongly recommends using a test-driven development process which occurs at the same time as code development. Salesforce has very strong set of documentation. When I was learning salesforce unit testing, I realize that it is difficult to understand where to start read. Therefore, I summarized the unit testing for salesforce beginners to understand the basic aspects of unit testing.

    There are few things to consider before you deploy or upload the code or package;75% of your Apex code must be covered by unit tests
    All the tests must complete successfully
    Every trigger has some test coverage (1%)
    All classes and triggers must compile successfully
    When you are writing a test class, you have to write test for Single Action, Bulk Action, Positive Behavior, Negative Behavior, and Restricted User.
    Single Action :Test to verify that a single record produces the correct, expected result.
    Bulk Action :  Test not only the single record case, but the bulk cases as well
    Positive Behavior :  Verify that the expected behavior occurs through every expected permutation
    Negative Behavior :  Verify that the error messages are correctly produced
    Restricted User :Test whether a user with restricted access to the sObjects used in     your code sees the expected behavior
    Test Class can be defined @isTest annotation. Before the Winter 12’ release we had only private test classes, but on Winter 12’ release salesforce has given the chance to write public test classes as well. Salesforce has released the public test classes for expose common methods for data creation. It can be used to setting up data that the tests need to run against. Public test methods can be called from a running test but not from a non-test request.

    When you create a test method,Use static
    Use testMethod keyword
    Use void return type
    No any arguments
    No data changes performed in a test method
    Don’t send emails
    Cannot be used to test Web service callout because web services are asynchronous and tests are synchronous.

Log In to reply.

Popular Salesforce Blogs

Popular Salesforce Videos