laravel phpunit测试全局方法

时间:2015-05-11 08:39:16

标签: php laravel phpunit

我正在为laravel中的项目编写测试,但它运行良好。但是,我的代码是否有优化?重复似乎是可以删除的,但是当我尝试时没有任何效果。

public function testApplIndex()
{
    $this->get('api/protected/app/index?X-Auth-Token='.Config::get('constants.X_AUTH_TOKEN'));

    // check if response 200 OK
    $this->assertResponseOk();

    // Get the response
    $jsonResponse = $this->client->getResponse()->getContent();

    //display response
    if (Config::get('constants.DISPLAY') == true) {
        echo $jsonResponse;
    }

}

public function testCompanyApp()
{
    $this->get('api/protected/app/company_apps?X-Auth-Token='.Config::get('constants.X_AUTH_TOKEN').'&co_id='.Config::get('constants.CO_ID'));

    $this->assertResponseOk();
    // Get the response
    $jsonResponse = $this->client->getResponse()->getContent();

    //display response
    if (Config::get('constants.DISPLAY') == true) {
        echo $jsonResponse;
    }
}

1 个答案:

答案 0 :(得分:-1)

您在这里尝试的是一系列要返回特定类型结果的端点。单个函数可以处理:

public function test_endpoint($endpoint)
{
    $this->get($endpoint);
    $this->assertResponseOk();
    // Get the response
    $jsonResponse = $this->client->getResponse()->getContent();

    //display response
    if (Config::get('constants.DISPLAY') == true) {
        echo $jsonResponse;
    }
}

然后你所要做的就是测试你的一系列终点:

public function testAllOkEndpoints(){
    $endpoints = array('api/protected/app/index?X-Auth-Token='.Config::get('constants.X_AUTH_TOKEN',
                       'api/protected/app/company_apps?X-Auth-Token='.Config::get('constants.X_AUTH_TOKEN').'&co_id='.Config::get('constants.CO_ID'));
    foreach ($endpoints as $endpoint) {
        $hits->test_endpoint($endpoint);
    } 
}

使用此方法,在添加端点时,只需将它们添加到正在测试的端点数组中,您希望响应位于200 OK