Ich versuche ein Modul zu testen, das ein Kontextobjekt wie folgt enthält:
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;
}
Wenn ich meinen Unit Test durchführe, wird folgende Fehlermeldung angezeigt:
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 ...
Wie kann ich dieses Objekt verspotten oder diesen Fehler beheben?
magento2
unit-tests
phpunit
Amin Memariani
quelle
quelle
Der folgende Code erstellt ein Modell des Kontexts in Ihrem Test.
Von:
vendor/magento/module-sales/Test/Unit/Helper/DataTest.php:setup()
Sie müssen dann den Pass
$contextMock
über den Objektmanager verwenden:Oder Sie können einen Mock verwenden und das Argument übergeben, wenn Sie die Methodenausgabe der Klasse ändern müssen, die Sie ändern:
quelle