www.999yzc.comPHP开辟API时怎样样模仿数据?

( www.999yzc.com )

API的数据怎样模仿?不是很理解““

真实每次央求的区别便是$_GET、$_POST、$_COOKIE、$_SERVER这些情况数据在发作改动,以是只需改动这些情况数据再实行Controller就可以模仿央求了

我用单位测试的方法来完成,代码大约便是下面这个样子,真实每次模仿央求便是经过router去实行controller类的差别办法而已

还可以运用phpunit –process-isolation参数把每次测试放到独自的php进程里实行,避免某些代码逻辑反复实行招致的形状污染题目

PHP    /**
     * @example
     * $this->execute(array(
     *     'path' => '/foo/bar',
     *     'method' => 'GET',
     *     'get' => array(),
     *     'post' => array(),
     *     'headers' => array(
     *         'Content-Type' => 'text/html'
     *     ),
     * ));
     */
    protected function execute(array $options) {
        if (!isset($options['path'])) {
            $options['path'] = $this->path;
        }

        $_SERVER = array();
        $_GET = $_POST = array();

        $_SERVER['REQUEST_URI'] = isset($options['path']) ? $options['path'] : '/';

        $method = isset($options['method']) ? strtoupper($options['method']) : 'GET';
        $_SERVER['REQUEST_METHOD'] = $method;

        if (isset($options['get'])) {
            $_GET = $options['get'];
        }

        if (isset($options['post'])) {
            $_POST = $options['post'];
        }

        $headers = isset($options['headers']) ? $options['headers'] : array();
        foreach ($headers as $key => $value) {
            $key = 'HTTP_'.strtoupper(str_replace('-', '_', $key));
            $_SERVER[$key] = $value;
        }

        return $this->router->execute();
    }

举荐一个 Chrome 扩展:Postman。

firebox,chrome阅读器有很多form表单提交东西,安装一个就好了

央求数据模仿,直接央求即可,假如运用东西,实行谷歌阅读器的post-man扩展,可以模仿种种央求和数据,包括post,get,put等等

听说过单位测试PHPUnit么?这个不但可以做单位测试,模仿API央求也是可以的,主要是要自己写下Post或Get央求

web调试利器,Fiddler2

直接写curl post数据,矫捷有方便

phpunit
codeception
selenium

自己用 guzzle 写

在chrome上装个插件 postman

(看完/读完)这篇文章有何感想! www.999yzc.com的分享…

发表评论

电子邮件地址不会被公开。 必填项已用*标注