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
.