如何在 PHP 中模拟 php://input?
2022-08-30 16:11:06
我正在为我的PHP项目编写一个单元测试,
单元测试是为了模拟数据,php://input
我读了手册,上面写着:
php://input 是一个只读流,允许您从请求正文中读取原始数据。
如何模拟 ,或在我的 PHP 中编写请求正文?php://input
这是我的源代码和单元测试,两者都得到了简化。
资料来源:
class Koru
{
static function build()
{
// This function will build an array from the php://input.
parse_str(file_get_contents('php://input'), $input);
return $input;
}
//...
单元测试:
function testBuildInput()
{
// Trying to simulate the `php://input` data here.
// NOTICE: THIS WON'T WORK.
file_put_contents('php://input', 'test1=foobar&test2=helloWorld');
$data = Koru::build();
$this->assertEquals($data, ['test1' => 'foobar',
'test2' => 'helloWorld']);
}