2017-06-14 5 views
0

Ich schreibe phpUnit-Tests für unsere Anwendung, also habe ich eine Modellfabrik geschrieben, danach versuche ich, den Komponententest auszuführen, dann bekomme ich einen Fehler wie "InvalidArgumentException: Unbekannter Formatierer 'publicId' ". Ich habe alle Spaltennamen der Tabelle in meiner Modellfabrik deklariert. Müssen alle Spalten in der Fabrik erwähnt werden?InvalidArgumentException: Unbekannter Formatierer beim Schreiben von Komponententests

ModelFactory.php

$factory->define(App\Campaign::class, function (Faker\Generator $faker) { 
return [ 
    'public_id' => $faker->publicId, 
    'client_id' => $faker->clientID, 
    'name' => $faker->name, 
    'criteria_age' => $faker->criteriaAge, 
    'criteria_state' => $faker->criteriaState, 
    'criteria_postcode' => $faker->criteriaPostcode, 
    'dncr_required' => $faker->dncrRequired, 
    'criteria_state' => $faker->criteriaState, 
    'active' => $faker->active, 
    'method' => $faker->method, 
    'server_parameters' => $faker->serverParameters, 
    'parameter_mapping' => $faker->parameterMapping, 
]; 
}); 

\ Tests \ Unit \ Kampagne \ CampaignTest.php

namespace Tests\Unit\Campaign; 

use App\Campaign; 

use Tests\TestCase; 
use Illuminate\Foundation\Testing\WithoutMiddleware; 
use Illuminate\Foundation\Testing\DatabaseMigrations; 
use Illuminate\Foundation\Testing\DatabaseTransactions; 

class CampaignTest extends TestCase 
{ 
use DatabaseTransactions; 
public function testCampaignCreation() 
{ 
    factory(\App\Campaign::class)->create(['name' => 'tinku']); 
    $this->seeInDatabase('campaigns', ['name' => 'tinku']); 
} 
} 

nach dem Ausführen "phpunit Tests/Einheit/Kampagne/CampaignTest.php" Ich habe diesen Fehler " InvalidArgumentException: Unbekannter Formatierer 'publicId' ". Ich bin neu in Laravel Ich weiß, dass es ein Verfahren gibt, um Fabriken zu bauen, aber ich konnte es nicht herausfinden. Hoffe jemand hilft. Vielen Dank.

Antwort

0

Der Formatierer ist von Faker nicht Laravel und nur mit Faker Formatierer Faker Schiffe nutzen können.

Die Fehlermeldung besagt nur, dass es keinen solchen Formatierer namens publicId gibt. Eine Liste aller Faker Formatter finden Sie unter: https://github.com/fzaninotto/Faker#formatters

Wenn Sie diese Liste mit den Formatierer vergleichen Sie in Ihrem Beispiel verwendet haben, wird es immer deutlicher, dass Sie die Formatierer mit einigen Datenbankeigenschaften verwirrt, wahrscheinlich ein Übersetzungsfehler von einem vorhandenen Beispiel? Aber ich denke, Sie werden es besser wissen, und das gibt Ihnen hoffentlich die Informationen, die Sie benötigen, um mit der Einrichtung Ihres Testfalls fortzufahren.

Verwandte Themen