mock
class MockHTTPBuilder{
MockHTTPBuilder(string){}
MockHTTPBuilder(){}
def pleaseFail = false
def mockData = []
def request(a, b, c){
if(pleaseFail) [status:'500',data: mockData ?: "It failed :("]
else [status:'200',data: mockData ?: "Yay :)"]
}
}
//usage
void setUp(){
def mock = new MockHTTPBuilder()
yourService.httpClient = mock
}
void testSomethingBad(){
yourService.httpClient.pleaseFail = true
assertFail yourService.someMethodThatUsesTheHttpClient()
}
void testSomethingGood(){
yourService.httpClient.pleaseFail = false
assertTrue yourService.method()
}