私は最近、プル提出し、直接使用されているオブジェクトマネージャの単一のインスタンスを修正するためにMagentoのにリクエストを。
ただし、Magentoのtravisユニットテストの実行は次のエラーで失敗しました。
PHPの致命的なエラー:/home/travis/build/magento/magento2/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.phpの39行目の未定義メソッドMock_BlockFactory_4b440480 :: create()への呼び出し
travisビルドに基づいて、どのテストが失敗したかさえわかりません。スタックトレースを使用して、ローカルで同様の(同一の)エラーをローカルで取得できました
PHP Fatal error: Call to undefined method Mock_BlockFactory_ec77572c::create() in /Users/alanstorm/Documents/github/astorm/magento2/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.php on line 39
PHP Stack trace:
PHP 1. {main}() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/phpunit:0
PHP 2. PHPUnit_TextUI_Command::main() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/phpunit:55
PHP 3. PHPUnit_TextUI_Command->run() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/TextUI/Command.php:132
PHP 4. PHPUnit_TextUI_TestRunner->doRun() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/TextUI/Command.php:179
PHP 5. PHPUnit_Framework_TestSuite->run() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:426
PHP 6. PHPUnit_Framework_TestSuite->run() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/Framework/TestSuite.php:675
PHP 7. PHPUnit_Framework_TestCase->run() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/Framework/TestSuite.php:675
PHP 8. PHPUnit_Framework_TestResult->run() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/Framework/TestCase.php:753
PHP 9. PHPUnit_Framework_TestCase->runBare() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/Framework/TestResult.php:686
PHP 10. PHPUnit_Framework_TestCase->runTest() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/Framework/TestCase.php:817
PHP 11. ReflectionMethod->invokeArgs() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/Framework/TestCase.php:951
PHP 12. Magento\Cms\Test\Unit\Controller\Adminhtml\Block\DeleteTest->testDeleteAction() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/Framework/TestCase.php:951
PHP 13. Magento\Cms\Controller\Adminhtml\Block\Delete->execute() /Users/alanstorm/Documents/github/astorm/magento2/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/DeleteTest.php:151
ローカルの障害をこのテストに絞り込むことができましたが、何が起こっているのかについて少し途方に暮れています。
私の推測では、テストフレームワークはDI引数を自動的にモック化しましたが、自動モックはcreate
メソッドを欠いていると思います。その場合、私の実際の質問は、Magentoのテストフレームワークに新しく挿入された依存関係のモックを追加するにはどうすればよいですか。
ただし、Magentoのテスト用のうさぎの穴を掘り下げたことは一度もないので、実際にここで何を行う必要があるのかわかりません。Magentoのテスト経験を持つ誰かが私を正直に設定できますか?
create