エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

phpunitで、factoryが動かない時があった話(環境や運で変わった)【741日目】

phpunitでテスト書いてた

いい感じに動いてるので、CircleCIで自動的にテストをチェックしようってことになった。

すると、動かない。動くんだけど、たまに動かない。

調べていくと、factoryがたまにうまく初期値を設定してくれてないっぽい。
毎回じゃなく、たまになので再現できず困った。

<?php

$factory->define(App\Models\User::class, function (Faker\Generator $faker) {
    return [
        'id'                  => $faker->randomNumber(),
    ];
});

こんなときに、idのデータがないと言われるやつ。

何があったか

複数定義してた

<?php

$factory->define(App\Models\User::class, function (Faker\Generator $faker) {
    return [
        'id'                  => $faker->randomNumber(),
    ];
});

<?php

$factory->define(App\Models\User::class, function (Faker\Generator $faker) {
    return [
    ];
});

たまに下が動いて、初期値がないクラスが作成されていた。

多重定義には気をつけようねってお話でした。