我正在使用$request->merge
修改控制器内部的subject_type
查询参数值,它在使用浏览器或任何API测试客户端发送请求时按预期工作。但是request查询参数不能在phpunit中覆盖。
class UserController extends Controller
{
public function index(Request $request)
{
$request->merge(['filter' => ['subject_type' => 'new_value']]);
return QueryBuilder::for(User::class)
->allowedFilters([AllowedFilter::exact('subject_type')])
->allowedSorts(['created_at'])
->defaultSort('-created_at')
->paginate($request->query('per_page', config('pagination.default.per_page_limit')));
}
}
这是我的测试用例
public function test_can_see_activity_log()
{
$response = $this->getJson('/api/v1/users?filter[subject_type]=App\Models\Post');
}
这里我不能用new_value
覆盖subject_type
。
版本号
"phpunit/phpunit": "^9.5.10"
"laravel/framework": "^9.19"
"spatie/laravel-query-builder": "^5.3",
1条答案
按热度按时间wwodge7n1#
实际上
Spatie\QueryBuilder\QueryBuilder
不接受新请求。已通过allowedFilters
回调修复。