Estou tentando testar um módulo que contém um objeto de contexto da seguinte maneira:
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;
}
Quando executo meu teste de unidade, ele me envia esta mensagem de erro:
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 ...
Como posso zombar desse objeto ou corrigir esse erro?
magento2
unit-tests
phpunit
Amin Memariani
fonte
fonte
O código a seguir criará uma simulação do contexto em seu teste.
De:
vendor/magento/module-sales/Test/Unit/Helper/DataTest.php:setup()
Você precisará usar o passe
$contextMock
através do gerenciador de objetos:Ou você pode usar um Mock e passar o argumento se precisar alterar a saída do método da classe que está sendo alterada:
fonte