Está en la página 1de 4
2215019 BOD y TOD.Aiml Integracién entre BDD y TDD Jasmine Jasmine es un framework de pruebas en javascript, que soporta la practica de desarrollo BDD, y tiene una aplicacién en el TDD. Lo que Jasmine y BOD intentan hacer es la descripcién de pruebas en un formato legible para que las personas no \écnicas puedan enteneder lo que esté siendo probado, Sin embargo, si las lee un programador seré mucho més fécil de entender, Jasmine es un marco de pruebas que soporta el desarrollo impulsado por el comportamiento. Escri » Por ejemplo: function heLloWordls(){ return ‘Hello World’ ; Si escribimos su prueba unitaria, seria algo como 1) describe(‘Hello world’, () => { 2) it("says hello", () => 3) expect (hellowor1d()) 4) «toEqual (‘Hello world"); ys ns En donde: 1. describe(string, function) Esta funcién define que estamos llamando una suite de pruebas (Test Suite), una coleccién de especificaciones de pruebas individuales (Test Specs). 2. it(string, function) Esta funcién define una prueba individual (Test Spec), esta contine una o més expectativas de pruebas (Test Expectations). 3. expect(actual) En conjuncién con un Matcher describe un comportamiento esperado en la aplicacién 4, matcher(expected) Es una expresién que llamamos Matcher. Hace una comparacién boleana entre el valor esperado pasado y el valor pasado en a funcién expect, si resulta negativo, entonces el spec falta Matchers pre construidos: generated by haroopad {l:t3C:/SIASWIDocumentos/2017/DocumentosiLecturalCalddad de Sotware/BDD y TOO.Ntm! M4 2aisr019 BOD y TOD.Aiml expect (array). tocontain(menber) ; expect (fn). toThrow(string) ; ‘expect (fn) -toThrowérror(string) 5 ‘expect (instance). toBe(instance) ; expect (mixed) . toBeDeFined() 5 expect (mixed) toBeFalsy(); expect (mixed) . toBeNul1(); expect (mixed) .toBeTruthy(); expect (mixed) . toBeUndefined(); expect (mixed) toEqual (mixed) ; expect (mixed). toMatch(pattern); expect (number). toBeCloseTo(number, decimalPlaces) ; ‘expect (number) . toBeGreaterThan (number) ; expect (number). toBeLessThan(number) ; expect (number). toBeNaN(); expect (spy). toHaveBeenCalled(); expect (spy) .toHaveBeenCal ledTimes (number) ; expect (spy). toHaveBeenCalledhith(....arguments); beforedll.- Esta funcién se llama una vez antes de que se ejecuten todas las especificaciones en la suit de la descripcién de pruebas. afterAll.- Esta funcién se llama una vez que todas las especificaciones de una suite de pruebas han finalizado. beforeEach.- Esta funcién se llama antes de que se haya ejecutado cada especificacién de prueba afterEach.- Esta funcién se llama después de cada especificacién de prueba se ha ejecutado. Pasos para la realizacién de las pruebas: * Setup & teardown (Configuracién y desconexién) * Creating test specs (Creacién de especificaciones de prueba) * Running the tests (Ejecucién de las pruebas) Esquema simple import { 's describe( ‘Componente: AccionesConponent’, () => { it(‘Debe existir la clase’, () => { expect (). toBeTruthy(); D3 vs {l:t3C:/SIASWIDcumentos/2017/DocumentosiLecturalCalddad de Sotware/BDD y TOO.Ntm! 28 generated by haroopad 2215019 BOD y TOD.Aiml Pruebas Clases y Pipes Ejemplo ‘Supongamos que tenemos una clase llamada AuthServicio: export class AuthServicio { estutenticado(): boolean { return !!localstorage.getItem( ‘token) ; la cual tiene una funcién llamada esAutenticado que devuelve true si hay un token almacenado en los navegadores localstorage Setup & teardown Queremos ejecutar nuestras especificaciones de prueba contra instancias nuevas de AuthService por lo que utilizamos las funciones beforeEach y afterEach para configurar y limpiar instancias de la siguiente manera: describe( ‘Servicio: Auth', () => { let servicio: AuthServicio; beforeéach(() => { servicio = new AuthServicio(); Ds afterEach(() servicio = null; Localstorage.renovelten( token"); Ds ys Se usa beforeEach(), para que antes de ejecutar cada prueba se cree una nueva instancia de AuthServicio, y se almacene en la variable de servicio. Se usa afterEach(), para que una vez finalizada la prueba, se anule el servicio y también se elimine los tokens almacenados en /ocalStorage. Creating test specs generated by haroopad {l:t3C:/SIASWIDocumentos/2017/DocumentosiLecturalCalddad de Sotware/BDD y TOO.Ntm! sie

También podría gustarte