Pregunta

Estoy aprendiendo AJS unidad de pruebas, con RequireJS, el Karma, la Mocha, Chai y angular-se burla.He tenido algo de suerte con los cuatro primeros, pero sin necesidad de entrar en "reales" de prueba y no se puede obtener en forma angular, se burla de trabajar.Hay mucho que hacer, así que voy a ser tan conciso como sea posible.

test/karma.conf.js

module.exports = function (config) {
    config.set({
        // requirejs may need to be listed before other modules (see https://github.com/princed/karma-chai-plugins#limited-requirejs-support)
        frameworks: ["requirejs", "mocha", "chai"],

        files: [
            // load the RequireJS config files first
            {pattern: "client/app/require-shared.js",                                     watched: false},
            {pattern: "test/require-test.js",                                             watched: false},

            // set included to false for files to be loaded via RequireJS
            {pattern: "client/**/*.js",                                  included: false                },
            {pattern: "bower_components/**/*.js",                        included: false, watched: false},

            // Mocha stuff
            {pattern: "test/unit/mocha.conf.js",                                          watched: false},

            // test files
            {pattern: "test/unit/**/pageSelectorTest.js",                           included: false                }
        ],
        exclude: [
            "client/app/bootstrap.js",
            "client/app/require-main.js",
            "*.conf.js"
        ],

        reporters: ["spec"],

        // enable / disable watching file and executing tests whenever any file changes
        autoWatch: false,

        browsers: [
            "PhantomJS"
        ],

        singleRun: true
    });
};

test/unit/mocha.conf.js

window.mocha.setup({
    ui: "tdd"
});

test/unit/MyTest.js

define([
     "angular-mocks"
    ,"app"
], function () {
    "use strict";

    var MODULE_NAME = "PageSelector";
    var assert = chai.assert;


    suite("Unit testing " + MODULE_NAME, function() {
        suite(MODULE_NAME + " module", function () {
            var appModule;

            setup(function () {
                // "ng" and "ngMock" modules automatically loaded
                appModule = angular.mock.module(MODULE_NAME);
                console.log(appModule);
            });

//          setup(function () {
//              angular.mock.inject(function () {
//
//              });
//          });

            test("should exist", function () {
                assert.isDefined(appModule, "module exists");
            });
        }); // end module tests
    });
});

Voy a omitir la publicación de todos los RequireJS config.Estoy bastante seguro de que voy a llegar angular y angular-mocks, porque he trabajado a través de los errores ya.

Mi Gruntfile simplemente tiene una opción para cargar karma.conf.js.La salida de grunt karma es:

Running "karma:unit" (karma) task
INFO [karma]: Karma v0.12.16 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.7 (Linux)]: Connected on socket WJUF8xogEo-XCG-8zzJX with id 10483911
PhantomJS 1.9.7 (Linux)
LOG LOG: undefined

  Unit testing PageSelector
    PageSelector module
      ✗ should exist
        AssertionError: module exists: expected undefined to not equal undefined
            at /home/client/node_modules/chai/chai.js:925
            at assertEqual (/home/client/node_modules/chai/chai.js:1402)
            at /home/client/node_modules/chai/chai.js:3627
            at /home/client/node_modules/chai/chai.js:2648
            at /home/client/test/unit/utility/pageSelectorTest.js:37
            at callFn (/home/client/node_modules/mocha/mocha.js:4338)
            at /home/client/node_modules/mocha/mocha.js:4331
            at /home/client/node_modules/mocha/mocha.js:4728
            at /home/client/node_modules/mocha/mocha.js:4819
            at next (/home/client/node_modules/mocha/mocha.js:4653)
            at /home/client/node_modules/mocha/mocha.js:4663
            at next (/home/client/node_modules/mocha/mocha.js:4601)
            at /home/client/node_modules/mocha/mocha.js:4625
            at done (/home/client/node_modules/mocha/mocha.js:4300)
            at callFn (/home/client/node_modules/mocha/mocha.js:4343)
            at /home/client/node_modules/mocha/mocha.js:4331
            at next (/home/client/node_modules/mocha/mocha.js:4626)
            at /home/client/node_modules/mocha/mocha.js:4625
            at done (/home/client/node_modules/mocha/mocha.js:4300)
            at callFn (/home/client/node_modules/mocha/mocha.js:4343)
            at /home/client/node_modules/mocha/mocha.js:4331
            at next (/home/client/node_modules/mocha/mocha.js:4626)
            at /home/client/node_modules/mocha/mocha.js:4630
            at timeslice (/home/client/node_modules/mocha/mocha.js:5763)


PhantomJS 1.9.7 (Linux): Executed 1 of 1 (1 FAILED) ERROR (0.003 secs / 0.002 secs)

Warning: Task "karma:unit" failed. Use --force to continue.

Aborted due to warnings.

Si me cambio angular.mock.module(MODULE_NAME); a angular.module(MODULE_NAME);, el assert obras.Lo que me estoy perdiendo?(Pido disculpas si no hay suficiente información anterior.Me pueden enviar más, según sea necesario.)

¿Fue útil?

Solución

Cavé en angular-mocks.js. module es sólo una preparación para el inject.En su propia cuenta, que en realidad no la carga de un módulo, como angular.module no.Yo lo estaba usando innecesariamente por "de" nivel de módulo de pruebas, donde angular.module es apropiado.

Al entrar en la real de controlador/directiva/etc.la prueba, que tendrá la module+inject par.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top