Ich bekomme eine JSON-Struktur von einer API und muss überprüfen, ob die erfolgreiche Antwort zwei spezifische Attribute mit bestimmten Werten hat.So testen Sie mehrere Eigenschaften eines Objekts
Schlüsselprobleme:
- ich nicht das ganze Objekt vergleichen, da es einige Eigenschaften, die mit jeder Anforderung variieren können
- ich nicht zwei Tests schreiben kann (für jedes Attribut), weil es sein kann, wird nur dann als erfolgreiche Antwort betrachtet, wenn beide Attribute den richtigen Werten entsprechen.
Beispiel erfolgreiche Antwort:
{
'success': true,
'user_ip': '212.20.30.40',
'id': '7629428643'
}
Schmutzige Lösung wäre
<?php
public function testAddAccount() {
$response = $this->api->addAccount('7629428643');
$this->assertTrue(
$response->success === TRUE &&
$response->id === '7629428643'
);
}
Aber ich denke, es muss bessere und sauberere Lösung sein, oder?
Das sieht ziemlich sauber zu mir. – Matt
Diese Lösung kann Ihnen nur sagen, dass der Test fehlschlägt, aber kann Ihnen nicht sagen, was genau schief geht, das ist meistens, warum ich das als "schmutzig" betrachte. –