2011-09-19 50 views
0

我有一個觸發器,將相關帳戶的帳單街道地址複製到相關聯繫人的其他街道地址。我從網上閱讀材料中寫下這個觸發器是否正確?有沒有更好的方法來寫它?如何編寫觸發器的測試用例?

Public class iTestClass { 

    public static testmethod void test() 
     { 
      Contact objContact1; 
      Contact objContact2; 

      objContact1 = New Contact(); 
      objContact1.OtherStreet = '123 lane'; 
      objContact1.OtherCity = 'Washington'; 
      objContact1.OtherState = 'OR'; 
      objContact1.OtherCountry = 'USA'; 
      objContact1.OtherPostalCode = '12122'; 

      objContact2 = New Contact(); 
      objContact2.OtherStreet = '232 st.'; 
      objContact2.OtherCity = 'cleveland'; 
      objContact2.OtherState = 'OH'; 
      objContact2.OtherCountry = 'USA'; 
      objContact2.OtherPostalCode = '166030'; 
     } 
    } 

回答

1

你是在正確的路線,但)你不插入聯繫人記錄,和b)你需要先插入一個賬戶,然後設置這些聯繫人的帳戶ID,將其插入。

// before creating the contacts create an account 
Account sAcct = new Account(); 
sAcct.Name = 'Test Account'; 
sAcct.BillingStreet = '1 Some Street'; // I forget the name of the field! 
// etc. 
insert sAcct; 

// then on your contacts do this: 
objContact1.Account = sAcct.Id; 

// then insert them at the end to fire the trigger 
insert objContact1; 
+0

觸發器已聯繫。你能告訴我如何按照你說的方式去做嗎?插入前,更新前,刪除前也觸發 – Gurnor

+0

這行給我錯誤:objContact1.Account = sAcct.Id; – Gurnor

+0

運行時保存或錯誤時出錯?我現在對於帳戶字段的sytax並不是100%確定的,但是如果它在運行時,請檢查帳戶是否正確插入 - 可能存在驗證規則或阻止它進入的應用程序。 –

相關問題