2011-09-19 48 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%确定的,但是如果它在运行时,请检查帐户是否正确插入 - 可能存在验证规则或阻止它进入的应用程序。 –

相关问题