You need to sign in to do that
Don't have an account?
rupesh ranjan
Error Message System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out Stack Trace Class.homeReport.getperformcallout:
Error Message System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out Stack Trace Class.homeReport.getperformcallout: @isTest(seeAllData = false) public class homeReportTests { static testmethod void Myunittest1() { Account account = new Account(); account.Name = 'Accc'; insert account; Contact contact = new Contact(); contact.FirstName = 'rup'; contact.LastName = 'ran'; contact.AccountID = account.Id; contact.Email = 'rup.ran@gmail.com'; contact.MobilePhone = '918527116725'; insert contact; homeReport cp = new homeReport(new ApexPages.StandardController(contact)); Test.startTest(); Test.setMock(HttpCalloutMock.class, new homepagemock()); homeReport testAObj = new homeReport(); testAObj.getperformcallout(); HttpResponse res = new HttpResponse(); String actualValue = res.getBody(); String expectedValue = '{"foo":"bar"}'; System.assertEquals(actualValue, expectedValue); System.assertEquals(200, res.getStatusCode()); cp.getperformcallout(); Test.stopTest(); } }
Generally speaking, try moving the Test.setMock before Test.startTest();
If that doesn't fix your issue, then you are calling an insert, update, or delete in either the homereport constructor or the getperformcallout method, pior to making a web service callout.
This DML action (insert,update,delete) could be a result of an error condition, so make sure you check those as well.
Hope that helps,