WebStorm – Jasmine jQuery

Soy bastante nuevo en el uso de WebStorm, pero no está funcionando como se esperaba. Tuve un proyecto en el pasado, pero ahora trato de recrearlo e bash hacer una prueba de mi código. Soy muy nuevo en la unidad de prueba de código JavaScript.

Entonces, tengo un archivo karma.conf.js que contiene lo siguiente:

 module.exports = function(config){ config.set({ basePath : './', files : [ '../../Resources/External/Bower/angular/angular.js', '../../Resources/External/Bower/angular-mocks/angular-mocks.js', '../../Resources/Scripts/OfficeUI.js', '../../Unit Tests/**/*.Test.js' ], autoWatch : true, frameworks: ['jasmine-jquery', 'jasmine'], browsers : ['Chrome'] }); }; 

Entonces, sí ejecuto mis pruebas con Karma utilizando el marco Jasmine. He incluido jasmine-jquery para cargar dispositivos en mi código HTML.

Entonces, tengo una función de JavaScript que alterna una clase cuando presionas o sueltas el botón:

 $(function() { $('#OfficeUI a.button').on('mousedown mouseup', function(e) { $(this).toggleClass('ie-fix'); }); }); 

Ahora, he escrito una prueba de unidad que se parece a lo siguiente:

 describe("Unit: OfficeUI Elements", function() { // Load up the HTML page 'OfficeUI.Elements.Test.html' before every test is executed. beforeEach(function() { loadFixtures('OfficeUI.Elements.Test.html'); }); it("should do some stuff in this example", function() { expect(true).toEqual(true); }); }); 

introduzca la descripción de la imagen aquí

La imagen de abajo muestra la estructura de carpetas de mi proyecto.

Ahora, cuando ejecuto mis pruebas, recibo el siguiente error:

 Error: Fixture could not be loaded: spec/javascripts/fixtures/OfficeUI.Elements.Test.html (status: error, message: undefined) 

He intentado resolver esto cambiando el método beforeEach en la prueba de unidad de la siguiente manera:

 beforeEach(function() { jasmine.getFixtures().fixturesPath = '/OfficeUI.Beta/Unit Tests/Pages'; loadFixtures('OfficeUI.Elements.Test.html'); }); 

He intentado varias cosas en el fixturesPath pero sigo recibiendo el mismo error.

¿Alguien tiene una idea de cómo resolver esto? Cualquier ayuda es muy apreciada.

Edición: Configuración de karma actualizada:

 module.exports = function(config){ config.set({ basePath : '../../', files : [ 'Resources/External/Bower/jquery/dist/jquery.js', 'Resources/External/Bower/angular/angular.js', 'Resources/External/Bower/angular-mocks/angular-mocks.js', 'Resources/Scripts/OfficeUI.js', 'Resources/Scripts/Elements/OfficeUI.Elements.js', 'Unit Tests/**/*.Test.js', { pattern: 'Resources/Unit Tests/*.html', watched: true, served: true, included: false }, ], autoWatch : true, watched: true, server: true, include: false, frameworks: ['jasmine-jquery', 'jasmine'], browsers: ['Chrome'] }); }; 

Cambie en su archivo OfficeUI.Elements.Test.js la siguiente línea:

 jasmine.getFixtures().fixturesPath = '/Tests/'; 

a:

 jasmine.getFixtures().fixturesPath = 'base/Tests/'; 

eso funciona bien para mi

En mi archivo de configuración karma, tengo que decirle a karma que sirve los archivos de fixture para jasmine.

Intente insertar lo siguiente en la sección de archivos de su archivo de configuración karma:

  // fixtures { pattern: '../../Resources/Unit Tests/Pages/*.*', watched: true, served: true, included: false },