createMock(Container::class); $injectableFactory = new InjectableFactory($container); $bindingData = new BindingData(); $binder = new Binder($bindingData); $instance = $this->createMock(SomeInterface::class); $binder->bindInstance(SomeInterface::class, $instance); $obj = $injectableFactory->createWithBinding(SomeClass::class, new BindingContainer($bindingData)); $this->assertNotNull($obj); $this->assertSame($instance, $obj->get()); } public function testCreateWithBinding2(): void { $container = $this->createMock(Container::class); $injectableFactory = new InjectableFactory($container); $bindingData = new BindingData(); $binder = new Binder($bindingData); $binder ->bindImplementation(SomeInterface1::class, SomeClass1::class) ->bindImplementation(SomeInterface2::class, SomeClass2::class); $obj = $injectableFactory->createWithBinding(SomeClass0::class, new BindingContainer($bindingData)); $this->assertNotNull($obj); } }