Estoy tratando de probar un módulo que contiene un objeto de contexto de la siguiente manera:
public function __construct(
\Magento\Framework\App\Helper\Context $context,
\Magento\Catalog\Model\Product\ImageFactory $productImageFactory,
\Magento\Framework\View\Asset\Repository $assetRepo,
\Magento\Framework\View\ConfigInterface $viewConfig,
ProductRepository $productRepo
)
{
parent::__construct($context, $productImageFactory, $assetRepo, $viewConfig);
$this->productRepo = $productRepo;
}
Cuando ejecuto mi prueba unitaria, me da este mensaje de error:
PHPUnit_Framework_Error : Argument 1 passed to Magento\Catalog\Model\Product::__construct() must be an instance of Magento\Framework\Model\Context, none given, called in ...
¿Cómo puedo burlarme de este objeto o corregir este error?
magento2
unit-tests
phpunit
Amin Memariani
fuente
fuente
El siguiente código creará una simulación del contexto en su prueba.
Desde:
vendor/magento/module-sales/Test/Unit/Helper/DataTest.php:setup()
Luego deberá usar el pase a
$contextMock
través del administrador de objetos:O puede usar un simulacro y pasar el argumento si necesita cambiar el resultado del método de la clase que está cambiando:
fuente