Porównaj ceny domen i usług IT, sprzedawców z całego świata

Laravel/PHPUnit: Element Assert json istnieje bez definiowania wartości


Przesyłam prośbę o wpis w przypadku testowym i chcę zapewnić, że w odpowiedzi jest określony element, powiedzmy z kluczem „x”. W tym przypadku nie mogę powiedzieć
seeJson (['x' = & > cokolwiek]);
, ponieważ nie znam tej wartości. i oczywiście nie mogę tego zrobić z
seeJson (['x']);
.
Czy jest sposób na rozwiązanie tego problemu?
Jeśli to ma znaczenie:
Laravel: v5.2.31
PHPUnit: 5.3.4
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Może przyda się komuś innemu. Możesz napisać ten test, aby przetestować responsywność struktury JSON
$this->post('/api/login/', [
'email' => 'customer3@example.com',
'password' => '123123123',
])->assertJsonStructure([
'status',
'result' => [
'id',
'email',
'full_name',
],
]);
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

<strike>
Chociaż nie jest to wcale optymalne, zdecydowałem się użyć tego kodu do przetestowania sytuacji:
</strike>
$this->post(URL, PARAMS)->see('x');

X to hipotetyczna nazwa, a rzeczywisty klucz pozycji ma niewielką szansę na pojawienie się w pozostałych danych. w przeciwnym razie to okropne obejście nie byłoby praktyczne.

UPDATE:
>
Oto rozwiązanie, aby zrobić to dobrze:
public function testCaseName(){
$this->post(route('route.name'), [
'param1' => 1,
'param2' => 10,
], [
'headers_if_any' => 'value'
]); $res_array = (array)json_decode($this->response->content()); $this->assertArrayHasKey('x', $res_array);
}

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się