¡¾ callable-fake¡¿Ðé¹¹ÄãµÄ¿Éµ÷È¡º¯ÊýÒÔ¼Ó¿ì²âÊÔ
ËüÓÐÒ»¸öÊÜ 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 µÈ¶ÏÑÔ¡£ÓйؾßÌåÐÅÏ¢ºÍʾÀý£¬ÇëÎñ±Ø²é¿´ÏîÄ¿×ÔÊöÎļþÖеĿÉÓà assertions µÄÍêÈ«ÁÐ±í¡£
Äã¿ÉÒÔÔÚ GitHub ÉÏÀí½â¸ü¶à¹ØÓÚ´ËÈí¼þ°üµÄÐÅÏ¢£¬ÁÔÈ¡ÍêÈ«µÄ°²ÖÃ˵Ã÷£¬²¢ÔÚ timacdonald/callable-fake Éϲ鿴Դ´úÂë¡£
ÒÔÉϾÍÊÇ¡¾ callable-fake¡¿Ðé¹¹ÄãµÄ¿Éµ÷È¡º¯ÊýÒÔ¼Ó¿ì²âÊԵľßÌåÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢°Ù·Ö°ÙÔ´ÂëÍøÆäËüÏà¹ØÎÄÕ£¡
¸ÐлÄúµÄÖ§³Ö£¬ÎÒ»á¼ÌÐøŬÁ¦µÄ!
´ò¿ªÖ§¸¶±¦É¨Ò»É¨£¬¼´¿É½øÐÐɨÂë´òÉÍŶ
°Ù·Ö°ÙÔ´ÂëÍø ½¨Òé´òÉÍ1¡«10Ôª£¬ÍÁºÀËæÒ⣬¸ÐлÄúµÄÔĶÁ£¡