Callable Fake ist ein PHP-Testdienstprogramm von Tim Macdonald, das „das Fälschen, Erfassen und Durchsetzen von Aufrufen von Callables/Closures ermöglicht“. In einigen Fällen kann dieses Paket dazu beitragen, dass Entwickler ein Callable in Tests bestehen können.
Es verfügt über eine API, die von der Laravel-Fiktion inspiriert ist, wie unten gezeigt:
// 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])); }
Mit diesem Paket können Sie etwas verwenden wie:
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]); }); }
Das Paket Assertions wie „asserCalled“, „assuranceNotCalled“, assetInvoked usw. werden bereitgestellt. Einzelheiten und Beispiele finden Sie in der vollständigen Liste der verfügbaren Behauptungen in der Projekt-Readme-Datei.
Sie können mehr über dieses Paket auf GitHub erfahren, vollständige Installationsanweisungen erhalten und den Quellcode unter timacdonald/callable-fake ansehen.
Das obige ist der detaillierte Inhalt von【callable-fake】Fälschen Sie Ihre aufrufbare Funktion, um das Testen zu beschleunigen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!