You need to sign in to do that
Don't have an account?
ericmonte
APEX REST Unit Test Question
hey guys can someone help me write a unit test for my try catch block? I am able to get 82% of my APEX Rest, but having a hard time covering the catch line.
@RestResource(urlMapping='/getofflinedata/*') global class WS_RestGetOfflineData { @HttpGet global static List <Address__c> queryAddres(){ try{ //Request and response parameters to and from the external client RestRequest req = RestContext.request; Restresponse res = RestContext.response; List<string> stringAccType= new List <String>(); stringAccType.add('Some Values'); // Query the Address object and return all records that meet the criteria in a List List <Address__c> addList = new List <Address__c>(); addList = [select id, Name from Address__c where AddType in: (stringAccType) Limit 5000]; return addList; } catch (System.Queryexception ex){ // throw query exception to external message. throw ex; } }
and my test method so far:
static testmethod void testGetOfflineData(){ try{ RestRequest req = new RestRequest(); RestResponse res = new RestResponse(); req.requestURI = 'https://cs10.salesforce.com/services/apexrest/getofflinedata/'; req.httpMethod = 'GET'; RestContext.request = req; RestContext.response = res; List <Address__c> addList = WS_RestGetOfflineData.queryAddres(); } catch (System.Queryexception ex){ throw ex; } }
Also when I deploy this to my production what req.RequestURI should i embedd?
can i just do : req.requestURI = '/services/apexrest/getofflinedata/'; ?
Thanks
Why are you catching the exception here?
According to the docs, that exception represents -- Any problem with SOQL queries, such as assigning a query that returns no records or more than one record to a singleton sObject variable.
And you're not doing that -- you're assigning to a list.
All Answers
Why are you catching the exception here?
According to the docs, that exception represents -- Any problem with SOQL queries, such as assigning a query that returns no records or more than one record to a singleton sObject variable.
And you're not doing that -- you're assigning to a list.
You are right. An oversight on my part. I guess I can just use an if statement or throw a custom exception.
Thanks