小编use*_*410的帖子

如何与 NodeJS、Jest 和 Knex 并行运行 Postgres 测试?

我有一个项目是在生产/暂存中使用 Postgres 开发的,在开发中使用 Sqlite 开发的。使用 Sqlite,我们能够在 13 秒内并行运行所有测试。

这是初始开发的一个很好的策略,但是有一些 Sqlite 不能做我们需要的事情(例如,删除列和添加新的外键)。所以我认为我们应该放弃 Sqlite 而只使用 Postgres。

测试套件运行大约需要一分钟,如果测试失败,我通常必须手动删除迁移表。它没有提供良好的测试体验。

对于使用 NodeJS、Knex 和 Jest 在 Postgres 数据库上并行运行测试,您有什么建议吗?

testing postgresql node.js knex.js jestjs

8
推荐指数
1
解决办法
3528
查看次数

javascript 参数是否被懒惰地评估?

我做了一个依赖注入模块。它使用了我发现的带有默认参数的 hack。function (x = SomeDependency) {}. SomeDependency 没有定义,但我可以解析它的 toString(对于类构造函数、箭头函数和简洁的对象方法也是如此)。它并不意味着在浏览器中受支持,仅在 Node.js 中受支持。

我的问题:我找不到任何关于参数是否被懒惰评估的文档,是否存在任何规范/文档?或者这只是未定义的行为?

更新:

我正在做的是使用未定义的默认参数(如上例所示),并解析函数/类的 toString 以找出它们是什么,然后调用函数或使用注入的参数更新类。

javascript ecmascript-6

4
推荐指数
2
解决办法
465
查看次数

Laravel 工厂为字段返回 0,将数字存储在数据库中

我有一个 Laravel 工厂,看起来像这样:

$factory->define( Municipality::class, function ( Generator $faker ) {

    return [
        'name' => $faker->city,
        'number' => (int) $faker->numerify( '####' )
    ];

} );
Run Code Online (Sandbox Code Playgroud)

如果我php artisan tinker像这样运行和使用工厂 factory(Acme\Models\Municipality::class)->create,我会得到输出

=> Acme\Models\Municipality {#797
  name: "West Alysaland",
  number: 0,
}
Run Code Online (Sandbox Code Playgroud)

当我跑步时,Acme\Models\Municipality::all()我得到

>>> Municipality::all();
=> Illuminate\Database\Eloquent\Collection {#771
     all: [
       Acme\Models\Municipality {#798
         number: 9449,
         name: "Lake Rosemarie",
       },
     ],
   }
Run Code Online (Sandbox Code Playgroud)

number在模型中设置为可填写,并且unsignedInteger在迁移中将字段设置为。

有谁知道为什么会发生这种情况?

编辑:

经过一些调试后,我发现这->save()是在模型上调用之后发生的。

php laravel eloquent

1
推荐指数
1
解决办法
382
查看次数