@isTest private class AccountUpEffectiveContractBatchTest { @isTest static void itShould() { List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } List rectContract = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '契約']; if (rectCo.size() == 0) { return; } //经销商 Account myAccount1 = new Account(name='Testaccount001', Dealer_discount__c =20, RecordTypeId = rectCo[0].Id); insert myAccount1; //经销商有效合同 Account myAccount2 = new Account(name='Testaccount002', RecordTypeId = rectContract[0].Id, Contract_Decide_Start_Date__c = Date.today().addDays(-1), Contract_Decide_End_Date__c =Date.today().addDays(1), Agent_Ref__c =myAccount1.Id, ParentId =myAccount1.Id,ET_SP_Dealer__c = true); insert myAccount2; Account acc = [select id,Agency_With_EffectiveContract__c from Account where id = :myAccount1.Id ]; System.assertEquals(true, acc.Agency_With_EffectiveContract__c); myAccount1.Agency_With_EffectiveContract__c = false; update myAccount1; System.Test.StartTest(); Id execBTId = Database.executeBatch(new AccountUpEffectiveContractBatch(),20); System.Test.StopTest(); acc = [select id,Agency_With_EffectiveContract__c from Account where id = :myAccount1.Id ]; System.assertEquals(true, acc.Agency_With_EffectiveContract__c); } @isTest static void itShould02() { List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } List rectContract = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '契約']; if (rectCo.size() == 0) { return; } //经销商 Account myAccount1 = new Account(name='Testaccount001', Dealer_discount__c =20, RecordTypeId = rectCo[0].Id); insert myAccount1; //经销商有效合同 Account myAccount2 = new Account(name='Testaccount002', RecordTypeId = rectContract[0].Id, Contract_Decide_Start_Date__c = Date.today().addDays(-1), Contract_Decide_End_Date__c =Date.today().addDays(1), Agent_Ref__c =myAccount1.Id, ParentId =myAccount1.Id,ET_SP_Dealer__c = false); insert myAccount2; Account acc = [select id,Agency_With_EffectiveContract__c from Account where id = :myAccount1.Id ]; System.assertEquals(false, acc.Agency_With_EffectiveContract__c); myAccount1.Agency_With_EffectiveContract__c = true; update myAccount1; System.Test.StartTest(); Id execBTId = Database.executeBatch(new AccountUpEffectiveContractBatch(),20); System.Test.StopTest(); acc = [select id,Agency_With_EffectiveContract__c from Account where id = :myAccount1.Id ]; System.assertEquals(true, acc.Agency_With_EffectiveContract__c); } }