前提・実現したいこと
payjpAPIを利用した決済に関係するコントローラーのテストを書いています
テストコントローラーで、通常のコントローラーで利用している定数を使ってAPIとやりとりする場合どのように記述すれば良いでしょうか?
発生している問題・エラーメッセージ
Payjp\Error\Authentication: No API key provided. (HINT: set your API key using "Payjp::setApiKey(<API-KEY>)". You can generate API keys from the Payjp web interface. See https://pay.jp/api for details, or email support@pay.jp if you have any questions.
該当のソースコード
<?php namespace App\Test\TestCase\Controller; use App\Controller\PaymentsController; use Cake\TestSuite\IntegrationTestCase; use Cake\ORM\TableRegistry; use Payjp\Error\InvalidRequest; use Cake\Network\Exception\BadRequestException; use Cake\Core\Configure; /** * App\Controller\PaymentsController Test Case */ class PaymentsControllerTest extends IntegrationTestCase { private $_payjpApiSecretKey; private $_payjpApiPublicKey; private $_payjpOAuthClientId; private $_payjpApiTokenKey; public function initialize() { parent::initialize(); $this->_payjpApiSecretKey = Configure::read('Payjp.Api.secretKey'); $this->_payjpApiPublicKey = Configure::read('Payjp.Api.publicKey'); $this->_payjpOAuthClientId = Configure::read('Payjp.OAuth.clientId'); $this->_payjpApiTokenKey = 'payjp_token'; } ・・・略 public function testPay($Id = null){ //API情報取得 \Payjp\Payjp::setApiKey($this->_payjpApiSecretKey); $payjpPlanId = 'XXXXXXXXX'; $payjpPlan = \Payjp\Plan::retrieve($payjpPlanId);
システムで定義している定数や、テスト対象のコントローラーで外から入力された値はテストコントローラーではコード内に任意のものを記述した上でテストをするというのが一般的なのでしょうか?
もしシステムの定数を利用する方法がありましたらご教授いただければと思います
補足情報(FW/ツールのバージョンなど)
cakephp 3.5
テスト環境:ローカル(MAMP)
php 7
DB mysal
回答1件
あなたの回答
tips
プレビュー