Saya mencoba menguji modul yang berisi objek konteks sebagai berikut:
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;
}
Ketika saya menjalankan Tes Unit saya memberi saya pesan kesalahan ini:
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 ...
Bagaimana saya bisa membuat tiruan dari objek ini atau membuat kesalahan ini diperbaiki?
magento2
unit-tests
phpunit
Amin Memariani
sumber
sumber
Kode berikut akan membuat tiruan dari konteks dalam pengujian Anda.
Dari:
vendor/magento/module-sales/Test/Unit/Helper/DataTest.php:setup()
Anda kemudian perlu menggunakan pass
$contextMock
melalui manajer objek:Atau Anda bisa menggunakan Mock dan meneruskan argumen jika Anda perlu mengubah metode output dari kelas yang Anda ubah:
sumber