Callable fake 是 Tim Macdonald 的一个 PHP 测试实用程序,它 “允许您伪造、捕获和断言对可调用 / 闭包的调用”。在某些情况下,此包可以帮助在测试中允许开发人员传递一个 callable。
它有一个受 Laravel 虚构启发的 API,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public function testEachLoopsOverAllDependencies(): void
{
$received = [];
$expected = factory(Dependency:: class )->times(2)->create();
$repo = $this ->app[DependencyRepository:: class ];
$repo ->each( function (Dependency $dependency ) use (& $received ): void {
$received [] = $dependency ;
});
$this ->assertCount(2, $received );
$this ->assertTrue( $expected [0]->is( $received [0]));
$this ->assertTrue( $expected [1]->is( $received [1]));
}
|
登录后复制
使用此软件包,您可以使用类似以下内容的内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public function testEachLoopsOverAllDependencies(): void
{
$callable = new CallableFake();
$expected = factory(Dependency:: class )->times(2)->create();
$repo = $this ->app[DependencyRepository:: class ];
$repo ->each( $callable );
$callable ->assertTimesInvoked(2);
$callable ->assertCalled( function (Depedency $dependency ) use ( $expected ): bool {
return $dependency ->is( $expected [0]);
});
$callable ->assertCalled( function (Dependency $dependency ) use ( $expected ): bool {
return $dependency ->is( $expected [1]);
});
}
|
登录后复制
该包提供了诸如 assertCalled、assertNotCalled、assertInvoked 等断言。有关详细信息和示例,请务必查看项目自述文件中的可用 assertions 的完整列表。
你可以在 GitHub 上了解更多关于此软件包的信息,获取完整的安装说明,并在 timacdonald/callable-fake 上查看源代码。
以上是【 callable-fake】虚构你的可调用函数以加速测试的详细内容。更多信息请关注PHP中文网其他相关文章!