2012-08-28 3 views
0

기회 및 해당 기회와 관련된 모든 레코드를 생성해야하는 테스트 메서드를 작성하려고합니다. 가장 이상한 곳에서 널 포인터 예외가 계속 발생합니다. null 포인터 예외가있는 Salesforce Apex 테스트 클래스

public static void createOpp() { 
    OpportunityEscalationtest.a = new Account(Name = 'SGC Test Account' 
              , Type = 'Customer' 
              , Phone = '(00) 0000 0000'); 

    insert OpportunityEscalationtest.a; 

    OpportunityEscalationtest.c = new List<Contact>();  
    Contact newC = new Contact(FirstName = 'Jack' 
           , LastName = 'O\'Neil' 
           , Phone = '(00) 0000 0000' 
           , AccountId = OpportunityEscalationtest.a.Id); 

    OpportunityEscalationtest.c.add(newC); 

    newC = new Contact(FirstName = 'Samantha' 
         , LastName = 'Carter' 
         , Phone = '(00) 0000 0000' 
         , AccountId = OpportunityEscalationtest.a.Id); 

    OpportunityEscalationtest.c.add(newC); 

    newC = new Contact(FirstName = 'Daniel' 
         , LastName = 'Jackson' 
         , Phone = '(00) 0000 0000' 
         , AccountId = OpportunityEscalationtest.a.Id); 

    OpportunityEscalationtest.c.add(newC); 

    insert OpportunityEscalationtest.c; 

    Contact priCont = [Select Id from Contact where FirstName = 'Jack' limit 1]; 
    OpportunityEscalationtest.a.GillForce__Primary_Contact__c = priCont.Id; 

    OpportunityEscalationtest.o = new Opportunity(Name = 'Mountain Complex Water' 
               , CloseDate = system.today() 
               , StageName = 'Business Analysis' 
               , AccountId = OpportunityEscalationtest.a.Id); 

    insert OpportunityEscalationtest.o; 

    for (Contact cont : c) { 
     OpportunityContactRole role = new OpportunityContactRole(ContactId = cont.Id 
                   , OpportunityId = OpportunityEscalationtest.o.Id 
                   , Role = 'Descision Maker'); 

     role.IsPrimary = (OpportunityEscalationtest.a.GillForce__Primary_Contact__c == cont.Id); 

     insert role; 
    } 
} 

오류

는 이러한 코드 2 선 사이 어딘가에 발생합니다 :

insert OpportunityEscalationtest.c; 

    Contact priCont = [Select Id from Contact where FirstName = 'Jack' limit 1]; 

나는이 코드 조각 자체에 포함해야 오해 오전 않는 한 비트가 난처한 상황에 빠진입니다. 어떤 아이디어라도 우수 할 것입니다.

+0

이 코드를 테스트 메소드로 실행하고 있습니까?'testMethod public static void createOpp()'? –

답변

0

먼저 테스트 클래스의 API 버전을 22.0 (클래스 본문의 버전 스 태트 탭)으로 설정하고 rund 테스트를 다시 시도합니다.

+0

왜 22입니까? 25를 사용할 수 있습니다. –

+0

http://salesforceblogger.blogspot.in/2012/02/sfdc-api-240-test-failure-issue.html – mast0r

+0

에서 확인하시기 바랍니다. 블로그에서 읽은 요점을 설명하는 것이 좋습니다. 블로그를 참조하십시오. 그렇다면 사람들은 해결책으로 제시된 마법의 숫자를 보지 못합니다. –

0

당신은 라인

Contact priCont = [Select Id from Contact where FirstName = 'Jack' limit 1]; 

에 오류가있다 그것은 (아마도 때문에 트리거에서 일부 조건에) 삽입을 실패 솔기. 또는 이름이 Jack 인 성함을 가진 특정 연락처를 삽입하지 않을 수도 있습니다 (아마도 성으로 인해).

내가 너라면 어떨까요? 나는 모든 연락처를 검색하여 디버그 (또는 당신을 위해 더 쉬운 곳)에 인쇄 할 것이다. 이 후에는 문제가있는 곳을 이해하게 될 것입니다.

관련 문제