我正在将旧的unittest测试用例转换为pytest。我目前正致力于将此单元测试行转换为 Monkeypatch 函数:
from unittest.mock import patch
patch('app.modle.addres.create, side_effect=create(add.address)):
Run Code Online (Sandbox Code Playgroud)
Monkeypatch 是否是正确使用的模块?
我试图覆盖issueToken位于的方法\Laravel\Passport\Http\Controllers\AccessTokenController而不添加新的路由,即(api/oauth/token)。我已经构建了自己的AccessTokenController方法来执行我想要的功能,但是当我调用时oauth/token,正在执行父方法而不是我的实现..我是否错过了完成覆盖的某些内容?
<?php
namespace App\Http\Controllers;
use phpseclib\Crypt\RSA;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use League\OAuth2\Server\Exception\OAuthServerException;
use Psr\Http\Message\ServerRequestInterface;
use \Laravel\Passport\Http\Controllers\AccessTokenController as ATC;
class AccessTokenController extends ATC {
public function issueToken(ServerRequestInterface $request){
try {
// Fetching username from request
$username = $request->getParseBody()['username'];
// Fetching the User
$user = User::where('email', '=', $username);
// Genereting token
$tokenResponse = parent::issueToken($request);
//convert response to json string
$content = $tokenResponse->getBody()->__toString();
$content['email'] = $user['emial'];
//convert json to array
$data = json_decode($content, true);
return $data;
} …Run Code Online (Sandbox Code Playgroud)