Я пытаюсь проверить модуль, который содержит объект контекста следующим образом:
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;
}
Когда я запускаю тестовый модуль, он выдает мне следующее сообщение об ошибке
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 ...
Как я могу сделать макет этого объекта или исправить эту ошибку?
magento2
unit-tests
phpunit
Амин Мемариани
источник
источник
Следующий код создаст макет контекста в вашем тесте.
От:
vendor/magento/module-sales/Test/Unit/Helper/DataTest.php:setup()
Затем вам нужно будет использовать проход
$contextMock
через менеджер объектов:Или вы можете использовать Mock и передать аргумент, если вам нужно изменить вывод метода изменяемого класса:
источник