【callable-fake】呼び出し可能な関数を偽装してテストを高速化します

藏色散人
リリース: 2023-04-08 16:52:01
転載
1807 人が閲覧しました

Callable fake は、Tim Macdonald による PHP テスト ユーティリティで、「呼び出し可能オブジェクト/クロージャへの呼び出しを偽装、キャプチャ、およびアサートできる」ものです。場合によっては、このパッケージは開発者がテストで呼び出し可能オブジェクトを渡すことを可能にするのに役立ちます。

これには、以下に示すように、Laravel フィクションからインスピレーションを得た API があります:

// Before, you might collect callables to assert later...
public function testEachLoopsOverAllDependencies(): void
{
    // arrange
    $received = [];
    $expected = factory(Dependency::class)->times(2)->create();
    $repo = $this->app[DependencyRepository::class];
    // act
    $repo->each(function (Dependency $dependency) use (&$received): void {
        $received[] = $dependency;
    });
    // assert
    $this->assertCount(2, $received);
    $this->assertTrue($expected[0]->is($received[0]));
    $this->assertTrue($expected[1]->is($received[1]));
}
ログイン後にコピー

このパッケージを使用すると、次のようなものが使用できます:

public function testEachLoopsOverAllDependencies(): void
{
    // arrange
    $callable = new CallableFake();
    $expected = factory(Dependency::class)->times(2)->create();
    $repo = $this->app[DependencyRepository::class];
    // act
    $repo->each($callable);
    // assert
    $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などが用意されています。詳細と例については、プロジェクトの Readme の 利用可能なアサーションの完全なリスト を必ず確認してください。

このパッケージの詳細については、GitHub で確認し、完全なインストール手順を入手し、timacdonald/callable-fake でソース コードを参照してください。

以上が【callable-fake】呼び出し可能な関数を偽装してテストを高速化しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!