Skip to main content
meghna m ha fatto una domanda in #Apex

Can any one help on this .I have a trigger written on Case object for the duplication to get it closed .I have written a Test class where it gives the code coverage as 70% only. When i Execute in Developer Console it throws an Error as :

Line: 3, Column: 24

Only top-level class methods can be declared static

Trigger :

trigger Case_DuplicateClose on Case (before insert) {

Map<String, Case> newCaseMap = new Map<String, Case>();

for(Case c : trigger.new)

{

while(c.Subject.startsWith('RE:') || c.Subject.startsWith('Re:') || c.Subject.startsWith('FW:') || c.Subject.startsWith('Fw:'))

c.Subject = c.Subject.substring(3).trim();

if(newCaseMap.containsKey(c.Subject))

c.Status = 'Closed';

else

newCaseMap.put(c.Subject, c);

}

for(Case c : [Select Subject From Case Where Subject in :newCaseMap.keySet()])

newCaseMap.get(c.Subject).status = 'Closed';

}

Test Class :

 

@istest

private class TestCase_DuplicateClose{

static testmethod void testcaseDuplicate(){

list <case>cases = new list<case>{};

for(integer i=0;i<200;i++){

case c=new case(Subject='RE:'+i);

cases.add(c);

}

test.startTest();

insert cases;

test.stopTest();

List<case> insertedcases =[Select Subject,status from case where id in:cases];

for(case c :insertedcases){

system.assertEquals(

'Closed',c.status);

}

}

}

Any help very much appreciated.

 
5 risposte
  1. 16 mar 2015, 09:52
    Yes it will work in production. To get code coverage in production run all test from console.

     
0/9000