I believe you should apply HTTP testing here.
- Fire the API with the required parameters
- assert the HTTP status and response
Summer Sale! All accounts are 50% off this week.
Hi I am using google autocomplete api and I want to test the api to make sure if i get place id in response.
I have got this error when running test. I am new to testing so i don't have much idea.
error
TypeError: Argument 1 passed to App\Libraries\Autocompleteaddress\GoogleAutocompleteAddress::placeId() must be an instance of Illuminate\Http\Request, array given, called in
my method
public function placeId(Request $request)
{
$url = $this->url . "autocomplete/json?input= $request->inputData&types=address&key=$this->key";
try {
$client = new Client();
$response = $client->request('get', $url);
$responseJson = $response->getBody()->getContents();
$responseArray = json_decode($responseJson, true);
$addressInformation = [];
foreach ($responseArray['predictions'] as $value) {
$addressInformation[] = [
'id' => $value['place_id'],
'label' => $value['description'],
'value' => $value['description'],
'formFieldId'=> $request->formFieldId,
];
}
return $addressInformation;
} catch (\Exception $e) {
return response()->json(['error' => $e->getMessage()], 500);
}
}
Here $request->inputData is the addres
and my test is like this
public function test_get_google_place_id()
{
$data ='60buckley street';
$response = (new AutocompleteAddress)->placeId($data);
dd($response);
}
```
@david001 the error says
Argument 1 passed to App\Libraries\Autocompleteaddress\GoogleAutocompleteAddress::placeId() must be an instance of Illuminate\Http\Request, array given
and here is the row
public function placeId(Request $request)
wjen you expect Request. but you sen an array
$data ='60buckley street';
$response = (new AutocompleteAddress)->placeId($data);
so, send Request instead of array
you can make new Request like
for GET request
$response = (new AutocompleteAddress)
->placeId(new \Illuminate\Http\Request(['inputData' => $data]));
for POST request
$response = (new AutocompleteAddress)
->placeId(new \Illuminate\Http\Request([], ['inputData' => $data]));
Please or to participate in this conversation.