У меня есть один интерфейс, который пока имеет один реализующий класс. В сервисном контейнере Laravel я пометил этот конкретный класс относительно интерфейса.
public function register()
{
$this->app->tag([
ConcreteClassA::class,
], Interface::class);
}
Я хотел бы полностью перезаписать этот тег с помощью имитации расширения этого интерфейса. Я пробовал следующее:
$mock = $this->mock(Interface::class, function (MockInterface $mock) {
$mock->shouldReceive('someMethod')
->andReturn(Carbon::now());
});
app()->tag([$mock], Interface::class);
Я также использовал различные варианты binding()
и instance()
без удачи.