
public String query;
public static final String QUERY_STRING = 'Select Id, Name, Market_Value_Total__c, (select Id, Name, Market_Value_for_Strategy_Total__c from WB_Accounts__r where Account_Status__c=\'Active\') from WB_Strategy__c where Id IN (Select Strategy__c from WB_Account__c)';
global database.querylocator start(Database.BatchableContext BC)
{
return Database.getQueryLocator(query);}
global void execute(Database.BatchableContext BC, List<sObject> scope)
{
decimal totalMarketValue=0;
for (sObject obj: scope){
totalMarketValue = 0;
WB_Strategy__c wbStrategy = (WB_Strategy__c)obj;
for (WB_Account__c wbAcc: wbStrategy.WB_Accounts__r){
totalMarketValue = totalMarketValue + wbAcc.Market_Value_for_Strategy_Total__c;
}
wbStrategy.Market_Value_Total__c = totalMarketValue;
update wbStrategy;
}
}
global void finish(Database.BatchableContext BC)
{
System.debug('WB Strategy Groups Batch finished.');
}
}
Test Class:@isTestprivate class WBStrategyBatchTest { public static testMethod void testWBStrategy(){ String query = 'Select Id, Name, Market_Value_Total__c, (select Id, Name, Market_Value_for_Strategy_Total__c from WB_Accounts__r where Account_Status__c=\'Active\') from WB_Strategy__c where Id IN (Select Strategy__c from WB_Account__c) LIMIT 2'; WB_Strategy__c[] wbStrgy = new List<WB_Strategy__c>(); WB_Strategy__c wb1 = new WB_Strategy__c(Name='WBStrategy', Market_Value_Total__c=100); wbStrgy.add(wb1); insert wbStrgy; Test.startTest(); WBStrategyBatch wb = new WBStrategyBatch(); Database.executeBatch(wb); Test.stopTest(); } }While running the test class I am receiving the following errorSystem.NullPointerException: Argument 1 cannot be nullPlease helpUpdate your test class like below
@isTest
private class WBStrategyBatchTest
{
public static testMethod void testWBStrategy()
{
WB_Strategy__c wb1 = new WB_Strategy__c(Name='WBStrategy', Market_Value_Total__c=100);
// add all required field
insert wb1;
WB_Account__c obj = new WB_Account__c();
// add all required field
obj.Strategy__c = wb1.id;
insert obj;
Test.startTest();
WBStrategyBatch wb = new WBStrategyBatch();
Database.executeBatch(wb);
Test.stopTest();
}
}
If you will get any issue please post with screen shot