Ответ теста Laravel с данными неверен - PullRequest
0 голосов
/ 30 апреля 2019

Я провожу модульное тестирование с помощью laravel, поэтому я вызвал функцию контроллера и получил как массив массив
Я получил ответ с этими

return back()->with('success', 'Lots was generated')  

и

return $this->lots_available;  

Тест дает мне ответ:

Произошла 1 ошибка:

  1. Тесты \ Feature \ LotTest :: test_lots Illuminate \ Validation \ ValidationException: данноеданные были недействительными.

Я не понимаю причины этого ответа, я начинаю с теста

Это мой функциональный тест

public function test_lots()  
{    
    $this->withoutExceptionHandling();  

    $product = factory(Product::class)->create([
        'size' => 20
    ]);

    $lots = factory(Lot::class, 10)->create([
        'product_id' => $product->id,
    ]);

    $admin = factory(User::class)->create([
        'role_id' => 3
    ]);

    $client_request = 500;

    $this->actingAs($admin)
    ->post(route('lots.distribution'), [$product, $client_request])
    ->assertStatus(200);
}  

И это мой названный метод

public function distribute(ProductRequest $product, $client_order)
{
    $this->lots = $product->lots;  
    $this->client_order = $client_order;  
    $this->getLotAvailable();

    return $this->lots_available;  
}

1 Ответ

0 голосов
/ 30 апреля 2019

Предполагая, что ваш маршрут похож на Route::post('/distribute/{product}/{client_order}')

route('lots.distribution') нужны параметры внутри вызова функции

route('lots.distribution', [$product, $client_request])

Затем вам нужно отправить данные, которые передают ваши правила в ProductRequest в противном случае вы получите ошибку проверки .Если вы попробуете dd(session('errors')) после публикации, вы, вероятно, увидите ошибки о пропущенных полях.

->post(
    route('lots.distribution', [$product, $client_request]), 
    ['title => 'unique_title', 'sap_id' => 'unique_id']
)

Наконец, в вашем методе я предполагаю, что запрос ProductRequest отличается от ModelТовар:

public function distribute(ProductRequest $request, Product $product, $client_order)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...