Enlighten te permite personalizar la forma como se organizan tus clases de pruebas, creando grupos, agregando títulos y descripciones, e incluso excluyendo algunas de ellas de tu documentación.

Creando grupos de pruebas

Puedes incluir tus clases de prueba en pequeños «grupos» o «módulos» de tu aplicación, con el fin de tener una mayor organización en la documentación generada por Enlighten.

Para crearlos, agrega dentro de modules en el archivo config/enlighten.php un nombre y un patrón por cada grupo que desees. Por ejemplo:

<?php

return [
    //...
    'modules' => [
        [
            'name' => 'Users',
            'pattern' => ['*Users*']
        ],
        [
            'name' => 'Projects',
            'pattern' => ['*Projects*', '*Project*']
        ],
        [
            'name' => 'Other Modules',
            'pattern' => ['*'],
        ],
    ]
];

Puedes usar expresiones regulares para obtener todas las clases que coincidan con un patrón dado, agregar varios patrones o incluso añadir un grupo al final para las clases que no coincidan con los patrones anteriores.

Excluyendo pruebas de la documentación

Enlighten también te brinda la posibilidad de excluir clases y métodos de prueba de su documentación. Para ello debes agregarlos dentro del arreglo ignore de tests en el archivo config/enlighten.php:

<?php
//...
'tests' => [
    // Add expressions to ignore test class names and test method names.
    // i.e. Tests\Unit\* will ignore all tests in the Tests\Unit\ suite,
    // validates_* will ignore all the tests that start with validates_.
    'ignore' => [
        'Tests\Unit\*',
        'Tests\Feature\Admin\UpdateProfessionsTest',
        'a_profession_associated_to_a_profile_cannot_be_deleted',
        'it_shows_*'
    ],
],

También puedes añadir la anotación @enlighten {"ignore": true} a una clase o método específico que desees excluir de la documentación:

<?php
//...

/**
 * @enlighten {"ignore": true}
 */
class ListProfessionsTest extends TestCase
{
    use RefreshDatabase;

    /**
     * @test
     * @enlighten {"ignore": true}
     */
    function it_shows_the_professions_list()
    {
        //....

Una vez que agregues esta anotación debes ejecutar tus pruebas para ver los cambios en la documentación.

Por defecto, Enlighten documentará todas las clases y métodos de prueba de tu proyecto.

Incluir pruebas ignoradas en la documentación

Enlighten te permite incluir clases y métodos que han sido excluidos desde el archivo de configuración.

Para ello, usa la anotación @enlighten en tus clases y métodos de prueba:

<?php
//...

/**
 * @enlighten
 */
class DeleteProfessionsTest extends TestCase
{
    use RefreshDatabase;

    /**
     * @test
     * @enlighten
     */
    function it_deletes_a_profession()
    {
        //...

Las anotaciones tienen prioridad sobre la opción de configuración.

Personalizando títulos y descripciones

Si deseas personalizar el título de tus clases o métodos para la documentación generada por Enlighten, usa las anotaciones @title o @testdox para personalizar el título:

<?php
//...

/**
 * @title The List Professions
 **/
class ListProfessionsTest extends TestCase
{
    use RefreshDatabase;

    /**
     * @test
     * @testdox Show List
     **/
    function it_shows_the_professions_list()
    {
        //...

Para incluir una descripción para tus clases o métodos de prueba usa la anotación @description:

<?php
//...

/**
 * @title The List Professions
 * @description This is a description
 **/
class ListProfessionsTest extends TestCase
{
    use RefreshDatabase;

    /**
     * @test
     * @testdox Show List
     * @description This is a description
     **/
    function it_shows_the_professions_list()
    {
        //...

Recuerda ejecutar nuevamente tus pruebas para ver los cambios en la documentación.

Ocultando secciones en la vista

Enlighten te permite ocultar secciones de su documentación mediante la opción hide en el archivo de configuración config/enlighten.php.

Por ejemplo, si deseas ocultar las secciones para las excepciones y operaciones a la base de datos, agrega lo siguiente al archivo de configuración:

<?php
//...

use Styde\Enlighten\Section;

return [
    // Add values to this array if you want to hide certain sections from your views.
    // For valid sections see \Styde\Enlighten\Section
    'hide' => [
        Section::EXCEPTION,
        Section::QUERIES,
    ],
];

Documentando clases, métodos o funciones en tu API

Puedes crear un snippet de tu código en las pruebas unitarias usando el helper enlighten(), esto te permitirá agregar ejemplos de código en tu documentación:

<?php
//...

/**
 * @test
 * @description Collections are "macroable", which allows you to add additional methods to the `Collection` class at run time.
 *              For example, the following code adds a `toUpper` method to the `Collection` class:
 */
function can_create_a_collection_macro()
{
    $names = enlighten(function () {
        // use Illuminate\Support\Collection;
        // use Illuminate\Support\Str;

        Collection::macro('toUpper', function () {
            return $this->map(function ($value) {
                return Str::upper($value);
            });
        });

        $collection = collect(['first', 'second']);

        return $collection->toUpper()->all();
    });

    $this->assertSame(['FIRST', 'SECOND'], $names);
}

Si lo prefieres, puedes usar el Facade Enlighten::test(), importando la clase Styde\Enlighten\Facades\Enlighten al principio de tu prueba.

Material relacionado

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Cómo instalar y configurar Laravel Enlighten Lección siguiente Explorando la documentación generada por Laravel Enlighten