Ich folgte der Symfony documentation über Funktionstests, um meine erste zu schreiben, aber ich habe einige Probleme. Die Antwort, die ich über Browser erhalten funktioniert gut:Symfony Funktionstest fehlgeschlagen, aber die gleiche Anfrage funktioniert im Browser
Aber wenn ich phpunit -c app/
in der Schale laufen bekomme ich einen Fehler.
1) AppBundle \ Tests \ Controllers \ MeterAPIControllerTest :: testGetAllVariables behaupten konnte nicht, dass 500 Matches 200 erwartet
Dies ist der Code:
<?php
namespace AppBundle\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class MeterAPIControllerTest extends WebTestCase
{
public function testGetAllVariables()
{
$client = static::createClient();
$crawler = $client->request(
'GET',
'/meters/121/120/variables'
);
// Assert a specific 200 status code
$this->assertEquals(200, $client->getResponse()->getStatusCode());
}
}
Wenn ich noch einmal versuchen Testbehauptung, ich bekomme auch Fehler.
// Assert that the "Content-Type" header is "application/json"
$this->assertTrue(
$client->getResponse()->headers->contains(
'Content-Type',
'application/json'
)
);
EDIT
Als ich phpunit
in app/logs/test.log
laufen bekomme ich eine PHP Ausnahme:
[2016.03.31 15.25.21] request.CRITICAL: Nicht abgefangene PHP Ausnahme Doctrine \ Common \ Persistence \ Mapping \ MappingException: "Ungültige Zuordnung Datei 'AppBundle.Entity.EM2Meter.orm.yml' für Klasse 'AppBundle \ Entity \ EM2Meter'." bei /Applications/MAMP/htdocs/iso50k1_tst_symfony/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php Linie 86 { "Ausnahme": "[object] (Lehre \ Common \ Persistence \ Mapping \ MappingException (Code: 0):. Ungültige Zuordnungsdatei 'AppBundle.Entity.EM2Meter.orm.yml' für die Klasse 'AppBundle \ Entity \ EM2Meter' bei /Applications/MAMP/htdocs/iso50k1_tst_symfony/Verkäufer/Lehre/common/lib/Lehre/Common/Persistenz/Mapping/MappingException.php: 86) "} []
Wie kann ich dieses Problem beheben?
sind Sie sicher, dass Ihr an den richtigen Port anfordert? – DevDonkey
@DevDonkey Ja, die Anfrage ist korrekt. – Francesco
bist du sicher? Ich denke, dass Sie feststellen werden, dass wenn Sie nicht angeben, wenn Sie einen neuen Client instanziieren, es Port 80 standardmäßig verwenden wird. – DevDonkey