function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Jonathan Wolff 7Jonathan Wolff 7 

Test class for custom object Apex class

Hello, I need a test class for my apex class. I tried it but failed. Could you help me please?
 
public class MediathekSearchController2 {

    
    @AuraEnabled(cacheable=true)
    public static List<List<sObject>> getSearchResult(String searchKey, String TypValue, String ZielgruppeValue, String ThemaValue){
        String findStr = searchKey+'*';
       String AWhere111 =  ' AND Typ__c = \''+ TypValue + '\'';
        Boolean isEmptySearch = String.isEmpty(searchKey);
        String findClause;
        
       system.debug('Das searchKey ist: ' + findStr);
  
         List <String> WhereClauses = new List <String>();
         IF (searchKey !=null) {
        
        
        IF (ThemaValue !=null && ThemaValue !='Alle') {
            WhereClauses.Add('Thema__c = \'' + ThemaValue + '\'');
        }
        IF (TypValue !=null && TypValue !='Alle') {
            WhereClauses.Add('Typ__c = \'' + TypValue + '\'');
        } 
        IF (ZielgruppeValue !=null && ZielgruppeValue !='Alle') {
            WhereClauses.Add('Zielgruppe__c = \'' + ZielgruppeValue + '\'');
        }
         }
         
         String WhereClause = String.join(WhereClauses, ' AND ');
         IF (WhereClauses.size()>0){
      findClause = 'FIND \'' + findStr + '\' IN ALL FIELDS RETURNING Mediathek__c (Id,  Thema__c, Mediathek_ID_Long__c, Name, Bezeichnung__c, ContentDocumentID__c, Typ__c, Zielgruppe__c, Umfang__c, Bezeichnung_Link__c, Bezeichnung_Search__c WHERE Inaktiv__c=false AND ' + WhereClause + ')';
         }else{
    findClause = 'FIND \'' + findStr + '\' IN ALL FIELDS RETURNING Mediathek__c (Id,  Thema__c, Mediathek_ID_Long__c, Name, Bezeichnung__c, ContentDocumentID__c, Typ__c, Zielgruppe__c, Umfang__c, Bezeichnung_Link__c, Bezeichnung_Search__c WHERE Inaktiv__c=false)';
         }
           system.debug('findcluase: ' +findclause);
     // String findClause = 'FIND\'' + findStr + '\' IN ALL FIELDS RETURNING Mediathek__c (Id,  Thema__c, Mediathek_ID_Long__c, Name, Bezeichnung__c, ContentDocumentID__c, Typ__c, Zielgruppe__c, Umfang__c, Bezeichnung_Link__c, Bezeichnung_Search__c WHERE Inaktiv__c=false)';
      
    
// List <String> Find2 = new List <String>(findClause);  
List<List<sObject>> searchResult2 = search.query(findClause);
       system.debug('Das searchResult2 ist: ' + searchResult2);

  String SQL = searchResult2 + WhereClause;
        system.debug('Der Query ist: ' + SQL); 
	
  
     return searchResult2;
    }
       
             
    
    @AuraEnabled 
    public static Map<String, String> getTypFieldValue(){
        Map<String, String> options = new Map<String, String>();
        
        Schema.DescribeFieldResult fieldResult = Mediathek__c.Typ__c.getDescribe();
        
        List<Schema.PicklistEntry> pValues = fieldResult.getPicklistValues();
        for (Schema.PicklistEntry p: pValues) {
            
            options.put(p.getValue(), p.getLabel());
        }
        return options;
    }
    
     @AuraEnabled 
    public static Map<String, String> getThemaFieldValue(){
        Map<String, String> options = new Map<String, String>();
        
        Schema.DescribeFieldResult fieldResult = Mediathek__c.Thema__c.getDescribe();
        
        List<Schema.PicklistEntry> pValues = fieldResult.getPicklistValues();
        for (Schema.PicklistEntry p: pValues) {
            
            options.put(p.getValue(), p.getLabel());
        }
        return options;
    }
    
     @AuraEnabled 
    public static Map<String, String> getZielgruppeFieldValue(){
        Map<String, String> options = new Map<String, String>();
        
        Schema.DescribeFieldResult fieldResult = Mediathek__c.Zielgruppe__c.getDescribe();
        
        List<Schema.PicklistEntry> pValues = fieldResult.getPicklistValues();
        for (Schema.PicklistEntry p: pValues) {
            
            options.put(p.getValue(), p.getLabel());
        }
        return options;
    }
}

 
Best Answer chosen by Jonathan Wolff 7
SubratSubrat (Salesforce Developers) 
Hello Jonathan ,

Please try with below test class and let me know further 
 
@isTest
public class MediathekSearchController2Test {
    @isTest
    static void testGetSearchResult() {
        // Create test data
        Mediathek__c mediathek = new Mediathek__c(Name='Test Mediathek', Typ__c='Test Typ', Zielgruppe__c='Test Zielgruppe', Thema__c='Test Thema');
        insert mediathek;
        String searchKey = 'Test';
        String TypValue = 'Test Typ';
        String ZielgruppeValue = 'Test Zielgruppe';
        String ThemaValue = 'Test Thema';
        Test.startTest();
        // Call the method to test
        List<List<sObject>> searchResult = MediathekSearchController2.getSearchResult(searchKey, TypValue, ZielgruppeValue, ThemaValue);
        Test.stopTest();
        // Assert that the search result contains the expected data
        System.assertEquals(1, searchResult.size());
        System.assertEquals(1, searchResult[0].size());
        Mediathek__c resultMediathek = (Mediathek__c)searchResult[0][0];
        System.assertEquals(mediathek.Id, resultMediathek.Id);
    }
    @isTest
    static void testGetTypFieldValue() {
        Test.startTest();
        // Call the method to test
        Map<String, String> typFieldValues = MediathekSearchController2.getTypFieldValue();
        Test.stopTest();
        // Assert that the picklist values are returned as expected
        System.assertEquals(2, typFieldValues.size());
        System.assertEquals('Alle', typFieldValues.get('Alle'));
        System.assertEquals('Test Typ', typFieldValues.get('Test Typ'));
    }
    @isTest
    static void testGetThemaFieldValue() {
        Test.startTest();
        // Call the method to test
        Map<String, String> themaFieldValues = MediathekSearchController2.getThemaFieldValue();
        Test.stopTest();
        // Assert that the picklist values are returned as expected
        System.assertEquals(2, themaFieldValues.size());
        System.assertEquals('Alle', themaFieldValues.get('Alle'));
        System.assertEquals('Test Thema', themaFieldValues.get('Test Thema'));
    }
    @isTest
    static void testGetZielgruppeFieldValue() {
        Test.startTest();
        // Call the method to test
        Map<String, String> zielgruppeFieldValues = MediathekSearchController2.getZielgruppeFieldValue();
        Test.stopTest();
        // Assert that the picklist values are returned as expected
        System.assertEquals(2, zielgruppeFieldValues.size());
        System.assertEquals('Alle', zielgruppeFieldValues.get('Alle'));
        System.assertEquals('Test Zielgruppe', zielgruppeFieldValues.get('Test Zielgruppe'));
    }
}

If it helps please mark this as best answer
Thank you.