+ Start a Discussion
Shruthi GM 4Shruthi GM 4 

Test class for the attachment class

How to write test class for this class?

public with sharing class AttachmentUploadController {

  public Attachment attachment {
  get {
      if (attachment == null)
        attachment = new Attachment();
      return attachment;

  public PageReference upload() {

    attachment.OwnerId = UserInfo.getUserId();
   // attachment.ParentId = Account.getId; // the record the file is attached to
    attachment.IsPrivate = true;

    try {
      insert attachment;
    } catch (DMLException e) {
      ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'Error uploading attachment'));
      return null;
    } finally {
      attachment = new Attachment(); 

    ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,'Attachment uploaded successfully'));
    return null;

Best Answer chosen by Shruthi GM 4
Hello Shruthi,
Use following test class and get 100% coverage.
Let me know if it helps you.
public class AttachmentUploadController_Test{
    // This method to cover valid code
    public static testMethod void first(){        
        // Created account record for give the parent id to attachment 
        Account acc = new Account();
        acc.Name = 'TestAcc';
        insert acc;
        // Created object of the class
        AttachmentUploadController testObj = new AttachmentUploadController();
        // Assigning values to the attachment object
        testObj.attachment.Name = 'TestAttach';
        testObj.attachment.Body = Blob.valueOf('Test Data');
        testObj.attachment.parentId = acc.Id;
        // Calling upload method
    // This method to throw error and cover catch block
    public static testMethod void second(){        
        AttachmentUploadController testObj = new AttachmentUploadController();

Yogesh More
more.yogesh422@gmail.com || Skype:-yogesh.more44