0
  1. 我得到 phpunit 并使用最简单的方法将其安装为这个链接以进行测试。

    我只是下载 phpunit.phar 文件,chmod & rename & move to /usr/local/bin 然后,我运行 phpunit --version,没问题。

    PHPUnit 3.7.27 by Sebastian Bergmann

  2. 我写了一个简单的测试

    public function testSomething(){
    
       $this -> assertTrue(true) 
    }
    

    然后我进入源文件夹,phpunit --colors Test

    有用。所以,我决定写一个复杂的演示。

  3. 我的项目文件夹结构是这样的。

    Project Name
       --> app
           --> api
           --> tests
    

    现在我写了一个简单的类 app/api/FlyApi.php

    <?php
    
     class FlyApi {
    
         public function makeFly(){
            //do something else
         }
     }
    

    然后我为 FlyApi.php 编写另一个测试类

    <?php
    
     class FlyApiTest extends PHPUnit_Framework_TestCase {
    
         public function testFly(){
            //new a FlyApi
            $flyApi = new FlyApi();
    
            //do something
         }
     }
    

    在这一行$flyApi = new FlyApi()我得到了错误。

    PHP 致命错误:在第 23 行的 /home/kevin/Workspace/fly/app/api/FlyApi.php 中找不到类“FlyApi”

    是的,这条线$flyApi = new FlyApi()

4

3 回答 3

1

你在使用 Laravel 的phpunit.xml文件吗?它包括 Laravel(和 Composer)的autoload.php文件,让您可以在其中使用所有自动加载的类。

最后,整个错误是什么?它应该(希望)告诉您它正在尝试加载的类(如果命名空间错误或其他原因,它将为您提供线索)。

于 2013-09-22T16:52:18.343 回答
1

您没有加载FlyApi类的定义。

这个解决方案是 Laravel 特有的:

您应该扩展TestCase而不是PHPUnit_Framework_TestCase.

于 2013-09-23T14:59:46.680 回答
1

尝试将您的/api/文件夹添加到您的ClassLoaderat 中app\start\global.php

你会发现这个部分:

ClassLoader::addDirectories(array(

    app_path().'/commands',
    app_path().'/controllers',
    ...
    app_path().'/api/
));
于 2013-09-22T12:54:36.637 回答