계정 복제본을 검사하는 트리거 용 테스트 클래스를 작성하고 있습니다. 하지만 내 테스트 클래스에 다음과 같은 오류가 발생합니다 :트리거 테스트 클래스
Error: Compile Error: Comparison arguments must be compatible types: Schema.SObjectField, String at line 35 column 42
테스트 클래스는 다음과 같습니다
@isTest
public class trg_AccountDuplicatePreventer_FinalTest{
static testMethod void Test0_TestInsertWithValue()
{
//Set<Account> Accset = new Set<Account>();
Account acc1 = new Account(Name = 'Agency0', Phone='9811309977',Physical_Street__c = 'ABC0', Physical_State_Province__c = 'NY',Physical_Zip_Postal_Code__c = '2010',Physical_Country__c= 'USA');
Account acc2 = new Account(Name = 'Agency00', Phone='9811309988',Physical_Street__c = 'ABC00', Physical_State_Province__c = 'NY',Physical_Zip_Postal_Code__c = '2010',Physical_Country__c= 'USA');
Account acc3 = new Account(Name = 'Agency000', Phone='9811309999',Physical_Street__c = 'ABC000', Physical_State_Province__c = 'NY',Physical_Zip_Postal_Code__c = '2010',Physical_Country__c= 'USA');
Account[] accs = new Account[]{acc1,acc2,acc3};
insert accs;
acc2.Phone='9811309999';
acc3.Physical_Street__c='ABC0000';
acc3.Phone='9811308888';
update accs;
Account dupe1 = new Account(Name = 'Agency0', Phone='9811309977',Physical_Street__c = 'ABC0', Physical_State_Province__c = 'NY',Physical_Zip_Postal_Code__c = '2010',Physical_Country__c= 'USA');
try{
insert dupe1;
System.assert(false);
}catch(DMLException e)
{
for (Integer i = 0; i < e.getNumDml(); i++)
{
System.assert(e.getNumDml() == 1);
System.assert(e.getDmlIndex(i) == 0);
System.assert(e.getDmlFields(i).size() == 3);
System.assert(e.getDmlFields(i)[0] == 'Name');
System.assert(e.getDmlFields(i)[1] == 'Phone');
System.assert(e.getDmlFields(i)[2] == 'Physical_Street__c');
System.assert(e.getDmlMessage(i).indexOf('An account with this name, phone, street already exists.') > -1);
}
}
}
}
가 어떻게 내 테스트 코드에서이 오류를 수정합니까?
감사합니다.
여기서 달성하고자하는 것과 같은 세부 사항을 지정할 수 있습니다. 또한, 실패한 행을 강조 표시 할 수 있습니까? – Anup
안녕하세요 Anup, 내 트리거 코드 계정 이름, 거리 및 전화 일치 또는 이름 및 전화 일치 또는 이름 및 거리 일치에 따라 시스템에서 계정 중복을 식별하려고합니다. 내가 작성한 테스트 클래스는 100 % 적용 범위를 제공하지만 1 테스트 실패가 발생합니다. – user1518186
메시지 : System.DmlException : 삽입에 실패했습니다. 행 0에 대한 첫 번째 예외. 첫 번째 오류 : FIELD_CUSTOM_VALIDATION_EXCEPTION,
이 이름/전화/물리적 스트리트가있는 대행사 레코드가 시스템에 존재합니다. 대행사 레코드를 만들려면 "새 레코드 만들기"필드 값을 예로 변경하십시오.
잠재적 인 중복 대행사 포함 :
이름, 전화 번호 및 물리적 거리 일치 장치가있는 대행사 : Agency000 |
이름과 전화 번호가 일치하는 기관 : Agency000 – user1518186