It's not possible to operate on variant that doesn't exists (it's not saved), those objects are saved in backend, so you can't expect missing primary key =)

But if you really don't want to use hackish, force to use Model there:
```php
use Sylius\Bundle\CoreBundle\Model\InventoryUnitInterface;
use Sylius\Bundle\CoreBundle\Model\Variant;

function bla_bla_blaaaaaaa(InventoryUnitInterface $unit, Variant $stockable) {
     $stockable->getId()->willReturn(3);
     $unit->getStockable()->willReturn($stockable);
}
```

IMO we can't be blocked by _missing_ features of phpspec, @pjedrzejewski I'm right or totally wrong about this mocking part?