본문 바로가기
Salesforce/Trailhead

[Developer Beginner] Apex Testing | Get Started with Apex Unit Tests

by proudofch 2021. 3. 22.

github.com/developerforce/trailhead-code-samples/blob/master/VerifyDate.cls

 

출처

 

developerforce/trailhead-code-samples

Public code samples to support Trailhead challenges - developerforce/trailhead-code-samples

github.com

public class VerifyDate {
    
	//method to handle potential checks against two dates
	public static Date CheckDates(Date date1, Date date2) {
		//if date2 is within the next 30 days of date1, use date2.  Otherwise use the end of the month
		if(DateWithin30Days(date1,date2)) {
			return date2;
		} else {
			return SetEndOfMonthDate(date1);
		}
	}
	
	//method to check if date2 is within the next 30 days of date1
	private static Boolean DateWithin30Days(Date date1, Date date2) {
		//check for date2 being in the past
    	if( date2 < date1) { return false; }
        
        //check that date2 is within (>=) 30 days of date1
        Date date30Days = date1.addDays(30); //create a date 30 days away from date1
		if( date2 >= date30Days ) { return false; }
		else { return true; }
	}

	//method to return the end of the month of a given date
	private static Date SetEndOfMonthDate(Date date1) {
		Integer totalDays = Date.daysInMonth(date1.year(), date1.month());
		Date lastDay = Date.newInstance(date1.year(), date1.month(), totalDays);
		return lastDay;
	}
    
}

 

이 코드 확인하는 테스트 코드 짬

 

@isTest
public class TestVerifyDate {
   
    @isTest static void checkFirst() {
    	Date date1 = date.today();
    	Date date2 = date.today().addDays(20);
		Date flag = VerifyDate.CheckDates(date1, date2);
        System.assertEquals(date2, flag);
    }
    
    @isTest static void checkSecond() {
        Date date1 = date.today();
    	Date date2 = date.today().addDays(50);
		Date flag = VerifyDate.CheckDates(date1, date2);
        Date myDate = date.newInstance(2021, 3, 31);
        System.assertEquals(myDate, flag);
    }
    
}

 

메소드명 대충 썼는데 통과됐다;;;

그냥 코드에서 분기마다 테스트해볼 수 있는 거 다 해보면 됨... 

댓글