function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
MontTwo MontTwoMontTwo MontTwo 

Test class with different scenarios for trigger helper

I have 100% coverage, but I still haven't scenarios for check. How to write good and bad scenarios for test class?
This is my helper:
public with sharing class JobHelper {

public static List<Task> taskList = new List<Task>();

public static void afterInsert(List<Job__c> newList) {

    for(Job__c job : newList){ 
        if(job.Stage__c == 'Closed'){
            createTask(job.OwnerId, 'Closed');
        }
        if(job.Stage__c == 'Open'){
            createTask(job.OwnerId, 'Open');
        }
    }
    insertTask(newList);
}

public static void afterUpdate(List<Job__c> newList, Map<ID, Job__c> oldMap) {

    for(Job__c job : newList){ 
        if(job.Stage__c == 'Closed' && oldMap.get(job.Id).Stage__c != 'Closed'){
            createTask(job.OwnerId, 'Closed');
        }
        if(job.Stage__c == 'Open' && oldMap.get(job.Id).Stage__c != 'Open'){
            createTask(job.OwnerId, 'Open');
        }
    }
    insert taskList;
}

public static List<Task> createTask(Id ownId, String subj){
    taskList.add(new Task(OwnerId = ownId, Subject = subj));
    return taskList;
}
}
Trigger:
trigger JobTrigger on Job__c (after insert, after update) {

if(Trigger.isAfter && Trigger.isInsert) {
    JobHelper.afterInsert(Trigger.new);
}
else if (Trigger.isAfter && Trigger.isUpdate) {
    JobHelper.afterUpdate(Trigger.new, Trigger.oldMap);
}
}
My test-try:
@isTest
private class JobTest {


public static List<Job__c> jobList = new List<Jobn__c>();

static testMethod void createTaskTest(){

    Job__c job1 = new Job__c(
        Stage__c = 'Closed',
    );
    jobList.add(job1);

    Job__c job2 = new Job__c(
        Stage__c = 'Open',
    );
    jobList.add(job2);

    insert jobList;

    List<Task> taskListTest = new List<Task>();
    Task task1 = new Task(Subject = 'Closed');
    taskListTest.add(task1);

    Task task2 = new Task(Subject = 'Open');
    taskListTest.add(task2);

    insert taskListTest;

    JobHelper j = new JobHelper();
    //System.assert(taskListTest == j.taskList);
}
}

 
Best Answer chosen by MontTwo MontTwo
Newbie__SalesforceNewbie__Salesforce
@isTest
private class JobTest {

static testMethod void createCloseTaskTest(){

    Job__c job1 = new Job__c(
        Stage__c = 'Closed',
		ownerID = UserInfo.getUserId();
    );
	insert job1;

    List<Task> taskListTest = [Select Subject from Task where Subject = 'Closed' AND OwnerId = :UserInfo.getUserId()];
	System.assertEquals(taskListTest.size(), 1);
	
}
static testMethod void createOpenTaskTest(){

    Job__c job1 = new Job__c(
        Stage__c = 'Open',
		ownerID = UserInfo.getUserId();
    );
	insert job1;

    List<Task> taskListTest = [Select Subject from Task where Subject = 'Open' AND OwnerId = :UserInfo.getUserId()];
	System.assertEquals(taskListTest.size(), 1);
	
}
// Negative scenario for null status
static testMethod void createOpenTaskTest(){

    Job__c job1 = new Job__c(
		ownerID = UserInfo.getUserId();
    );
	insert job1;

    List<Task> taskListTest = [Select Id from Task ];
	System.assertNotEquals(taskListTest.size(), 1);
	
}
//Bulk testing
static testMethod void createOpenTaskTest(){

	List<Job__c> lstJobs = new List<Job__c>();
	for(integer i=0;i < 10; i++) {
		Job__c job1 = new Job__c(
        Stage__c = 'Open',
		ownerID = UserInfo.getUserId();
		lstJobs.add(job1);
	}
	insert lstJobs;

    List<Task> taskListTest = [Select Subject from Task where Subject = 'Open' AND OwnerId = :UserInfo.getUserId()];
	System.assertEquals(taskListTest.size(), 10);
	
}
}

Let me know if u find any blocker or so!
FYI I have treated stage as a non required field, so if u find any error do let me know