@isTest private class UpdateStatuAchievementsBatchTest { static testMethod void myUnitTest() { Opportunity opp = new Opportunity(Name='aiueo', StageName='出荷', CloseDate=Date.today()); insert opp; Statu_Achievements__c sta = new Statu_Achievements__c( Name='test01', Opportunity__c = opp.Id, DeliveryStatus__c = 'test', PaymentRate__c = '1234', End_User_price__c = 0, AssignmentStatus__c = '全部分配', Last_week__c = '5 货齐,未付款,无用户合同', X2weeks_ago__c = '4 备货中', X3Weeks_ago__c = '3 已付款,无用户合同', X4weeks_ago__c = '2 待付款', X5weeks_ago__c = '1 全没有' ); Statu_Achievements__c sta2 = new Statu_Achievements__c( Name='test02', Opportunity__c = opp.Id, DeliveryStatus__c = 'test', PaymentRate__c = '1234', End_User_price__c = 0, AssignmentStatus__c = '全部分配', Last_week__c = '5 货齐,未付款,无用户合同', X2weeks_ago__c = '4 备货中', X3Weeks_ago__c = '3 已付款,无用户合同', X4weeks_ago__c = '2 待付款', X5weeks_ago__c = '1 全没有', Last_Batch_Day__c = Date.today().addDays(-14) ); Statu_Achievements__c sta3 = new Statu_Achievements__c( Name='test03', Opportunity__c = opp.Id, DeliveryStatus__c = 'test', PaymentRate__c = '1234', End_User_price__c = 0, AssignmentStatus__c = '全部分配', Last_week__c = '5 货齐,未付款,无用户合同', X2weeks_ago__c = '4 备货中', X3Weeks_ago__c = '3 已付款,无用户合同', X4weeks_ago__c = '2 待付款', X5weeks_ago__c = '1 全没有', Last_Batch_Day__c = Date.today().addDays(-21) ); Statu_Achievements__c sta4 = new Statu_Achievements__c( Name='test04', Opportunity__c = opp.Id, DeliveryStatus__c = 'test', PaymentRate__c = '1234', End_User_price__c = 0, AssignmentStatus__c = '全部分配', Last_week__c = '5 货齐,未付款,无用户合同', X2weeks_ago__c = '4 备货中', X3Weeks_ago__c = '3 已付款,无用户合同', X4weeks_ago__c = '2 待付款', X5weeks_ago__c = '1 全没有', Last_Batch_Day__c = Date.today().addDays(-28) ); Statu_Achievements__c sta5 = new Statu_Achievements__c( Name='test05', Opportunity__c = opp.Id, DeliveryStatus__c = 'test', PaymentRate__c = '1234', End_User_price__c = 0, AssignmentStatus__c = '全部分配', Last_week__c = '5 货齐,未付款,无用户合同', X2weeks_ago__c = '4 备货中', X3Weeks_ago__c = '3 已付款,无用户合同', X4weeks_ago__c = '2 待付款', X5weeks_ago__c = '1 全没有', Last_Batch_Day__c = Date.today().addDays(-35) ); insert new Statu_Achievements__c[] {sta,sta2,sta3,sta4,sta5}; Statu_Achievements__c sta1 = [select Current_status__c,Last_week__c,X2weeks_ago__c,X3Weeks_ago__c,X4weeks_ago__c,X5weeks_ago__c from Statu_Achievements__c where Id = :sta.Id]; System.assertEquals('6 货齐,已付款,无用户合同', sta1.Current_status__c); System.assertEquals('5 货齐,未付款,无用户合同', sta1.Last_week__c); System.assertEquals('4 备货中', sta1.X2weeks_ago__c); System.assertEquals('3 已付款,无用户合同', sta1.X3Weeks_ago__c); System.assertEquals('2 待付款', sta1.X4weeks_ago__c); System.assertEquals('1 全没有', sta1.X5weeks_ago__c); System.Test.StartTest(); Id execBTId = Database.executeBatch(new UpdateStatuAchievementsBatch(), 5); System.Test.StopTest(); Statu_Achievements__c sta_1 = [select Current_status__c,Last_week__c,X2weeks_ago__c,X3Weeks_ago__c,X4weeks_ago__c,X5weeks_ago__c from Statu_Achievements__c where Id = :sta.Id]; System.assertEquals('6 货齐,已付款,无用户合同', sta_1.Current_status__c); System.assertEquals('6 货齐,已付款,无用户合同', sta_1.Last_week__c); System.assertEquals('5 货齐,未付款,无用户合同', sta_1.X2weeks_ago__c); System.assertEquals('4 备货中', sta_1.X3Weeks_ago__c); System.assertEquals('3 已付款,无用户合同', sta_1.X4weeks_ago__c); System.assertEquals('2 待付款', sta_1.X5weeks_ago__c); Statu_Achievements__c sta_2 = [select Current_status__c,Last_week__c,X2weeks_ago__c,X3Weeks_ago__c,X4weeks_ago__c,X5weeks_ago__c from Statu_Achievements__c where Id = :sta2.Id]; System.assertEquals('6 货齐,已付款,无用户合同', sta_2.Current_status__c); System.assertEquals('6 货齐,已付款,无用户合同', sta_2.Last_week__c); System.assertEquals(null, sta_2.X2weeks_ago__c); System.assertEquals('5 货齐,未付款,无用户合同', sta_2.X3Weeks_ago__c); System.assertEquals('4 备货中', sta_2.X4weeks_ago__c); System.assertEquals('3 已付款,无用户合同', sta_2.X5weeks_ago__c); Statu_Achievements__c sta_3 = [select Current_status__c,Last_week__c,X2weeks_ago__c,X3Weeks_ago__c,X4weeks_ago__c,X5weeks_ago__c from Statu_Achievements__c where Id = :sta3.Id]; System.assertEquals('6 货齐,已付款,无用户合同', sta_3.Current_status__c); System.assertEquals('6 货齐,已付款,无用户合同', sta_3.Last_week__c); System.assertEquals(null, sta_3.X2weeks_ago__c); System.assertEquals(null, sta_3.X3Weeks_ago__c); System.assertEquals('5 货齐,未付款,无用户合同', sta_3.X4weeks_ago__c); System.assertEquals('4 备货中', sta_3.X5weeks_ago__c); Statu_Achievements__c sta_4 = [select Current_status__c,Last_week__c,X2weeks_ago__c,X3Weeks_ago__c,X4weeks_ago__c,X5weeks_ago__c from Statu_Achievements__c where Id = :sta4.Id]; System.assertEquals('6 货齐,已付款,无用户合同', sta_4.Current_status__c); System.assertEquals('6 货齐,已付款,无用户合同', sta_4.Last_week__c); System.assertEquals(null, sta_4.X2weeks_ago__c); System.assertEquals(null, sta_4.X3Weeks_ago__c); System.assertEquals(null, sta_4.X4weeks_ago__c); System.assertEquals('5 货齐,未付款,无用户合同', sta_4.X5weeks_ago__c); Statu_Achievements__c sta_5 = [select Current_status__c,Last_week__c,X2weeks_ago__c,X3Weeks_ago__c,X4weeks_ago__c,X5weeks_ago__c from Statu_Achievements__c where Id = :sta5.Id]; System.assertEquals('6 货齐,已付款,无用户合同', sta_5.Current_status__c); System.assertEquals('6 货齐,已付款,无用户合同', sta_5.Last_week__c); System.assertEquals(null, sta_5.X2weeks_ago__c); System.assertEquals(null, sta_5.X3Weeks_ago__c); System.assertEquals(null, sta_5.X4weeks_ago__c); System.assertEquals(null, sta_5.X5weeks_ago__c); } }