Wykonuję następujące czynności, aby przetestować wywołanie POST do Laravel. Spodziewam się, że POST na pytania, zgodnie z moimi trasami, będzie wysyłane jako metoda akcji sklepu. Działa to w przeglądarce.Jak testować trasy POST w Laravel
Moje testy:
public function setUp()
{
parent::setUp();
Session::start();
}
public function testStoreAction()
{
$response = $this->call('POST', 'questions', array(
'_token' => csrf_token(),
));
$this->assertRedirectedTo('questions');
}
Jednakże, mówi mi, że przekierowanie nie pasuje. Ponadto widzę, że w ogóle nie chodzi o metodę działania sklepu. Chcę wiedzieć, jaka metoda działania ma zamiar, i dlaczego nie idzie do metody przechowywania (jeśli spojrzę na trasę: lista widzę, że jest POST pytania/trasy, które powinny przejść do questions.store; to działa również w przeglądarce, ale nie w moich testach). Ponadto, czy poprawnie piszę wezwanie do tego zasobu? Dodałem token tutaj, ponieważ był to wyjątek, tak jak powinien, w niektórych testach pozwolę, aby test tokena minął.
można zapewnić rzeczywisty opis błędu, dzięki –
Jest mało prawdopodobne, że parametry POST są tylko csrf znak. Prawdopodobnie w twoim kontrolerze masz jakąś walidację, która sprawia, że żądanie przekierowania z powrotem do poprzedniej lokalizacji (kod odpowiedzi 302). Możesz to sprawdzić, debugując sesję za pomocą 'dd (Session :: get ('errors'))' – mauricius