如何使用PHPUnit Bridge模拟DNS?

时间:2016-12-21 20:30:10

标签: php laravel testing dns phpunit

我正在使用PHPUnit和Laravel 5来功能测试我的API端点。

当我的笔记本电脑连接到互联网时,我注意到我的测试非常慢!所以我认为这可能是导致这种延迟的DNS查找。

我需要PHPUnit Bridge来模拟DNS,但由于缺少文档,我不知道要在参数中传递什么以模拟我的API的子域api.insa.dev

这是我目前在TestCase班级setUp()功能中所拥有的内容:

\Symfony\Bridge\PhpUnit\DnsMock::withMockedHosts([

    'insa.dev' => [
        [
            'ip' => '127.0.0.1',
            // ... ?!?!?
        ],
    ],

]);

1 个答案:

答案 0 :(得分:2)

我认为要使其正常工作,首先需要在DnsMock类上调用register方法。

\Symfony\Bridge\PhpUnit\DnsMock::register(App\ClassBeingTested::class);

然后,要模拟子域,只需将其直接放在模拟主机中:

\Symfony\Bridge\PhpUnit\DnsMock::withMockedHosts([
    'api.insa.dev' => [
        [
            'ip' => '127.0.0.1',
            // ... ?!?!?
        ],
    ],
]);