Buscar..


alsaciano

Alsatian es un marco de prueba de unidad escrito en TypeScript. Permite el uso de casos de prueba y genera un marcado compatible con TAP .

Para usarlo, instálalo desde npm :

npm install alsatian --save-dev

A continuación, configure un archivo de prueba:

import { Expect, Test, TestCase } from "alsatian";
import { SomeModule } from "../src/some-module";    

export SomeModuleTests {

    @Test()
    public statusShouldBeTrueByDefault() {
        let instance = new SomeModule();
        
        Expect(instance.status).toBe(true);
    }
    
    @Test("Name should be null by default")
    public nameShouldBeNullByDefault() {
        let instance = new SomeModule();
        
        Expect(instance.name).toBe(null);
    }
    
    @TestCase("first name")
    @TestCase("apples")
    public shouldSetNameCorrectly(name: string) {
        let instance = new SomeModule();
        
        instance.setName(name);
        
        Expect(instance.name).toBe(name);
    }
    
}

Para una documentación completa, vea el repositorio de GitHub de alsatian .

complemento chai-inmutable

  1. Instalar desde npm chai, chai-immutable y ts-node

    npm install --save-dev chai chai-immutable ts-node
    
  1. Instala tipos para mocha y chai.

    npm install --save-dev @types/mocha @types/chai
    
  2. Escribir archivo de prueba simple:

      import {List, Set} from 'immutable';
      import * as chai from 'chai';
      import * as chaiImmutable from 'chai-immutable';
    
      chai.use(chaiImmutable);
    
      describe('chai immutable example', () => {
        it('example', () => {
          expect(Set.of(1,2,3)).to.not.be.empty;
    
          expect(Set.of(1,2,3)).to.include(2);
          expect(Set.of(1,2,3)).to.include(5);
        })
      })
    
  3. Ejecutarlo en la consola:

    mocha --compilers ts:ts-node/register,tsx:ts-node/register 'test/**/*.spec.@(ts|tsx)'
    

cinta

la cinta es un marco de prueba de JavaScript minimalista, genera un marcado compatible con TAP .

Para instalar la tape usando el comando npm run.

npm install --save-dev tape @types/tape

Para usar la tape con Typescript necesita instalar ts-node como paquete global, para ejecutar este comando

npm install -g ts-node

Ahora estás listo para escribir tu primera prueba.

//math.test.ts
import * as test from "tape";

test("Math test", (t) => {
    t.equal(4, 2 + 2);
    t.true(5 > 2 + 2);

    t.end();
});

Para ejecutar el comando test run

ts-node node_modules/tape/bin/tape math.test.ts

En salida deberías ver

TAP version 13
# Math test
ok 1 should be equal
ok 2 should be truthy

1..2
# tests 2
# pass  2

# ok

Buen trabajo, acabas de ejecutar tu prueba de TypeScript.

Ejecutar múltiples archivos de prueba

Puede ejecutar varios archivos de prueba a la vez utilizando comodines de ruta. Para ejecutar todas las pruebas de Typescript en el comando de ejecución del directorio de tests

ts-node node_modules/tape/bin/tape tests/**/*.ts

broma

jest es un marco de prueba de JavaScript sin dolor por Facebook, con ts-jest se puede utilizar para probar el código TypeScript.

Para instalar jest usando el comando npm run

npm install --save-dev jest @types/jest ts-jest typescript

Para facilitar el uso, instale jest como paquete global.

npm install -g jest

Para hacer que jest funcione con TypeScript, debe agregar la configuración a package.json

//package.json
{
...
"jest": {
    "transform": {
      ".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
    },
    "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
    "moduleFileExtensions": ["ts", "tsx", "js"]
  }
}

Ahora la jest está lista. Supongamos que tenemos una muestra de fizz buz para probar

//fizzBuzz.ts
export function fizzBuzz(n: number): string {
    let output = "";
    for (let i = 1; i <= n; i++) {
        if (i % 5 && i % 3) {
            output += i + ' ';
        }
        if (i % 3 === 0) {
            output += 'Fizz ';
        }
        if (i % 5 === 0) {
            output += 'Buzz ';
        }
    }
    return output;
}

Ejemplo de prueba podría verse como

//FizzBuzz.test.ts
/// <reference types="jest" />

import {fizzBuzz} from "./fizzBuzz";
test("FizzBuzz test", () =>{
    expect(fizzBuzz(2)).toBe("1 2 ");
    expect(fizzBuzz(3)).toBe("1 2 Fizz ");
});

Para ejecutar la ejecución de prueba

jest

En salida deberías ver

 PASS  ./fizzBuzz.test.ts
  ✓ FizzBuzz test (3ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        1.46s, estimated 2s
Ran all test suites.

Cobertura de código

jest soporta la generación de informes de cobertura de código.

Para usar la cobertura de código con TypeScript, debe agregar otra línea de configuración a package.json .

{
...
  "jest": {
  ...
    "testResultsProcessor": "<rootDir>/node_modules/ts-jest/coverageprocessor.js"
  }
}

Ejecutar pruebas con generación de informes de cobertura ejecutados.

jest --coverage

Si se usa con nuestro zumbido de muestra, debería ver

 PASS  ./fizzBuzz.test.ts
  ✓ FizzBuzz test (3ms)

-------------|----------|----------|----------|----------|----------------|
File         |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
-------------|----------|----------|----------|----------|----------------|
All files    |    92.31 |     87.5 |      100 |    91.67 |                |
 fizzBuzz.ts |    92.31 |     87.5 |      100 |    91.67 |             13 |
-------------|----------|----------|----------|----------|----------------|
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        1.857s
Ran all test suites.

jest también creó una coverage carpeta que contiene un informe de cobertura en varios formatos, incluido un informe html fácil de usar en coverage/lcov-report/index.html

jest html report



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow