Loading
Salesforce에서 이메일을 보내기 위해서는 도메인 인증이 필요합니다.더 많이 읽기

Salesforce Test.isRunningTest() 사용 방법

게시 일자: Dec 2, 2024
상세 설명

Apex 테스트 메서드에서 테스트 데이터를 설정할 때 시작 트리거를 비활성화하는 방법이 필요합니다. 이로 인해 "LimitException: "Too many SOQL queries: 101" 오류가 발생할 수 있습니다. 이 경우 트리거는 테스트 케이스의 대상이 아니므로 이 시나리오에서는 테스트 메서드가 실패합니다. 모든 테스트 케이스에서 트리거를 무효로 할 필요는 없고, 대신에 isRunningTest() 를 사용할 수 있습니다.

솔루션

isRunningTest()를 활용하여 트리거를 설정합니다. isRunningTest()는 현재 실행되고 있는 코드가 테스트 메서드에 포함되어 있는 코드로부터 호출된 경우는 true를 반환하고 그렇지 않으면 false를 반환합니다. 이 메서드는 테스트에서 호출되었는지 여부에 따라 다른 코드를 실행해야 하는 경우에 사용합니다.

Test.isRunningTest 코드 예시

if(Test.isRunningTest()){
//동작 실행
}

 

다른 시나리오

  1. Test.IsRunningTest() 가 true 인 경우는 트리거에 의해 배치가 실행되지 않게 하고 나서, 자체 테스트 메서드를 사용하여 배치 클래스를 테스트합니다.
  2. 콜 아웃 테스트 - 콜 아웃 코드에서 Test.isRunningTest() 를 확인하여 유닛 테스트 컨텍스트 내에서 실행 중인지 확인하고 HttpResponse.send () 요청으로 부터 콜 아웃 응답을 가져오는 대신 미리 작성된 테스트 문자열을 반환합니다.
  3. System.purgeOldAsyncJobs가 이 컨텍스트 안에서 호출되었을 경우는, 삭제 되는 데이터에 따라서 실행 시간이 길어지는 경우가 있습니다.
    이 경우에는 Test.isRunningTest()를 사용하는 것이 좋습니다.


Knowledge 기사 번호

000386600

 
로드 중
Salesforce Help | Article