V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Exin
V2EX  ›  问与答

我该选哪个 PHP 测试工具?

  •  
  •   Exin · 2016-06-02 22:02:10 +08:00 · 1978 次点击
    这是一个创建于 3095 天前的主题,其中的信息可能已经有所发展或是发生改变。
    PHP 初学者,为 App 服务端写了 10 来个.php 文件,长度都在 50~200 行,逻辑不复杂。都是根据 post 数据进行一些操作,包括数据库操作。

    找了几个 PHP 测试工具发现似乎不太适用,比如 PHPUnit 这类单元测试工具,主要拿来测试单元代码,但是我的项目里复用的类、函数不多,不太好用,也就是我写的有点面向过程了。其他还有测试 PHP 构建的站点的工具,各种goto('/../../'),see('.....')什么的,也不适合我的情况。

    所以最大的问题就是我的代码模块化程度低(?),目前想到的办法只有自己拿 Python 之类的手写几组测试输入与期望输出去跑。

    有没有好用的工具适合我的情况的呢?
    第 1 条附言  ·  2016-06-03 11:50:24 +08:00
    我觉得我应该更抽象地问一下。

    我知道封装好的 PHP 库应该能进行单元测试、功能测试等测试,因为它可以方便地生成实例、提供函数给测试使用。

    按我目前对 PHP 的理解,最后暴露给外部作为 API 的是一个个.php 文件,它们内部会使用封装好的库,生成一些实例什么的,所以它们应该是比较“平面”的。

    我的问题就是 如何对最后这些.php 测试?
    还是说只要 这些被使用的库通过了测试,就可以放心大胆地写,不需要测试最后暴露的.php 了?
    13 条回复    2016-06-03 21:01:40 +08:00
    cxbig
        1
    cxbig  
       2016-06-02 22:14:05 +08:00   ❤️ 1
    看上去你写的都是平面代码。
    既然是和数据库交互,建议你使用一个框架如 Laravel ,并参考 Laravel 的 Test 相关章节
    如果嫌重,至少用 composer 装好:
    - PDO , Model 抽象的东西
    - HTTP 组件,实现基本的 route , request , response
    有这些再来做 PHPUnit 比较好
    justjavac
        2
    justjavac  
       2016-06-02 23:28:33 +08:00 via Android
    > 找了几个 PHP 测试工具发现似乎不太适用

    这是什么逻辑啊?????

    让工具去适应你的代码,这个逻辑就错了。

    编写代码是一门艺术,你要让你的代码 testful 。
    justjavac
        3
    justjavac  
       2016-06-02 23:29:44 +08:00 via Android
    > 所以最大的问题就是我的代码模块化程度低(?)

    对。就是这个问题。
    Exin
        4
    Exin  
    OP
       2016-06-03 00:01:16 +08:00
    @justjavac 谢谢,没发现什么有帮助的信息。
    justjavac
        5
    justjavac  
       2016-06-03 01:31:03 +08:00 via Android
    @Exin 重构
    TonyG
        6
    TonyG  
       2016-06-03 07:13:28 +08:00
    behat
    litlwai
        7
    litlwai  
       2016-06-03 08:43:41 +08:00
    试试 postman?
    xjtlujoe
        8
    xjtlujoe  
       2016-06-03 10:11:20 +08:00
    phpstorm?
    Exin
        9
    Exin  
    OP
       2016-06-03 11:14:11 +08:00 via Android
    @xjtlujoe 这不是 IDE 吗?
    @TonyG
    @litlwai 谢谢,我看一下
    Exin
        10
    Exin  
    OP
       2016-06-03 11:54:48 +08:00
    @cxbig
    @justjavac
    整理了一下问题,请看 append
    cxbig
        11
    cxbig  
       2016-06-03 20:46:45 +08:00
    @Exin 你说的“最后暴露给外部作为 API 的是一个个.php 文件”
    鉴于现代的 PHP 框架,所有请求都是经过 public/index.php 再分发到具体的 controller 里的
    所以,简单来说对外只有一个 php 文件
    Exin
        12
    Exin  
    OP
       2016-06-03 20:54:18 +08:00
    @cxbig 是这样啊,果然我学的还是太少。
    分发给 controller 应该如何处理?我搜索到的大多是依靠 Apache 之类的实现路由,有没有纯 PHP 的方式?有什么合适的关键字可以让我搜索一下吗?
    cxbig
        13
    cxbig  
       2016-06-03 21:01:40 +08:00   ❤️ 1
    @Exin 要不你先学学 Laravel ?有很多 Restful API 搭建教程。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2824 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:25 · PVG 17:25 · LAX 01:25 · JFK 04:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.