1. 配置代码格式管理工具:

composer require squizlabs/php_codesniffer, 使用 php artisan cs 检查代码格式;

2.单元测试用例编写

  1./database/factories/ModelFactory.php 中配置每个表的模拟数据,例:

$factory->define(App\Models\Task::class, function (Faker\Generator $faker) {
return [
'description' => $faker->streetAddress,
'type' => $faker->randomElement(App\Models\Order::ORDER_TYPE),
'app_id' => $faker->randomNumber(),
'status' => rand(1, 5),
'keyword' => str_random(5),
'credit' => $faker->randomElement([508, 608, 708]),
'total' => 100,
'release' => 10,
'done' => 10,
'release_count' => 1,
'toke_at' => $faker->dateTime()->format('Y-m-d H:i:s'),
'end_at' => $faker->dateTime()->format('Y-m-d H:i:s'),
];
});
  2./tests 中配置一个基础的 TestCase.php,其他的测试用例都继承这里,可以在这里配置统一的校验,统一响应格式,例,
    
<?php

use Laravel\Lumen\Testing\DatabaseMigrations;
use Laravel\Lumen\Testing\DatabaseTransactions;

abstract class TestCase extends \Laravel\Lumen\Testing\TestCase
{
    use DatabaseTransactions;

    /**
     * Creates the application.
     *
     * @return \Laravel\Lumen\Application
     */
    public function createApplication()
    {
        return require __DIR__ . '/../bootstrap/app.php';
    }

    public function getData()
    {
        $this->assertResponseOk();
        return @json_decode($this->response->content(), true);
    }

    public function dump()
    {
        $content = $this->response->content();
        $data = @json_encode(@json_decode($content), JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);

        if (empty($data) || $data === 'null') {
            dd($content);
        }
        echo ($data) . PHP_EOL;
        die();
    }

    public function auth()
    {
        $user = factory('App\User')->make();
        return $this->actingAs($user);
    }

    public function signatureJson($uri, $data = [], $method = 'GET', $user = null, $header = ['Authorization' => 'c4ca4238a0b923820dcc509a6f75849b'])
    {
        if (empty($user)) {
            factory(App\User::class)->create(['authorization' => array_get($header, 'Authorization', '')]);
        }


        if (is_array($data) || is_string($data)) {
            $timestamp = \Carbon\Carbon::now()->getTimestamp();
            if (is_string($data)) {
                $data = @json_decode($data);
            }
            $data['timestamp'] = $timestamp;
            ksort($data);

            $signature = sha1(config('signature.key') . array_get($header, 'Authorization', '') . http_build_query($data));
            $data['signature'] = $signature;
            return $this->json($method, $uri, $data, $header);
        }
        $this->assertEquals(1, 0, 'params data invalid.');

    }
}
View Code

相关文章: