php - 如何使用 PHPUnit Bridge 模拟 DNS?

标签 php laravel testing dns phpunit

我将 PHPUnit 与 Laravel 5 结合使用来对我的 API 端点进行功能测试。

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

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

这就是我目前在 TestCasesetUp() 函数中的内容:

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

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

]);

最佳答案

我认为要让它工作,首先你需要在 DnsMock 类上调用 register 方法。

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

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

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

关于php - 如何使用 PHPUnit Bridge 模拟 DNS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41271407/

相关文章:

laravel - 如何在 Laravel 5.1 中测试删除方法

testing - 我如何测试(QA)我的Amazon应用程序MWS

php - Predis\Connection\ConnectionException

php - Laravel 5 - 仅在授权后允许管理员注册

php - 多个 NuSOAP 客户端导致 "Undefined index: _transient"错误

laravel - 在 Laravel 5.5 中获取当前路由的名称

android - 使用 c# .net 的 Appium 异常

php - 使用 phpspec 进行测试 - 来自当前类的模拟方法

php - always_populate_raw_post_data - 无法从 Backbone create 访问请求负载

php - 使用 PHP 但不使用 MySQL 列出在线用户的最佳方法?