tutorial test run princess karma javascript jasmine

javascript - test - karma js



Ejecutar código fuera del bloque "it" rompe mi prueba de Jasmine (1)

Intento escribir algunos casos de prueba (por primera vez) usando jazmín

describe("Widget App core logic", function () { WAPP.widgets = [];

addwidget agregará un widget en mi matriz WAPP.widgets

WAPP.addWidget(''testRecord'', ''testRecordContent''); it("added", function () { expect(WAPP.widgets.length).toEqual(1); });

Eliminar widget eliminará el mismo widget

WAPP.removeWidget(''1''); it("record removed correctly", function () { expect(WAPP.widgets.length).toEqual(0); })

Después de escribir la segunda especificación, mi primera especificación falla, ya que muestra que WAPP .widgets está vacío. aunque en el momento de la primera especificación hay un valor en WAPP .widgets


El problema aquí es que no deberías tener código de prueba fuera de it . El código fuera del it se ejecuta una vez antes de la ejecución de todo el caso de prueba. Lo que probablemente está sucediendo en su caso es que elimine todo el widget antes de que comience la prueba.

Como debería ser tu código de prueba es este:

describe("Widget App core logic", function () { beforeEach(function () { WAPP.widgets = []; }); it("added", function () { WAPP.addWidget(''testRecord'', ''testRecordContent''); expect(WAPP.widgets.length).toEqual(1); }); it("record removed correctly", function () { WAPP.addWidget(''1'', ''1''); WAPP.removeWidget(''1''); expect(WAPP.widgets.length).toEqual(0); }) });

Tenga en cuenta que su código de prueba debe ser autocontenido, toda la inicialización debe hacerse dentro del it o beforeEach .