Прежде всего хочу сказать, что я новичок в RequireJS и даже новичок в Jasmine.
У меня возникают некоторые проблемы с SpecRunner и требуются JS. Я слежу за учебниками Узи Килона и Бена Наделя (наряду с некоторыми другими), и они помогли некоторым, но у меня все еще есть некоторые проблемы.
Похоже, что если в тесте возникла ошибка (я могу вспомнить, в частности, ошибку типа), отобразится spec runner html. Это говорит мне, что у меня есть некоторые проблемы в javascript. Однако после исправления этих ошибок HTML больше не отображается. Я не могу заставить тестовый бегун вообще отображаться. Может ли кто-то найти что-то не так с моим кодом, что вызовет эту проблему?
Вот моя структура :
Root 
|-> lib
    |-> jasmine
        |-> lib (contains all of the jasmine lib)
        |-> spec
        |-> src
    |-> jquery (jquery js file)
    |-> require (require js file) 
index.html (spec runner) specRunner.js
Вот SpecRunner (index) HTML:
<!doctype html>
<html lang="en">
    <head>
        <title>Javascript Tests</title>
        <link rel="stylesheet" href="lib/jasmine/lib/jasmine.css">
        <script src="lib/jasmine/lib/jasmine.js"></script>
        <script src="lib/jasmine/lib/jasmine-html.js"></script>
        <script src="lib/jquery/jquery.js"></script>
        <script data-main="specRunner" src="lib/require/require.js"></script>
        <script>
            require({ paths: { spec: "lib/jasmine/spec" } }, [
                    // Pull in all your modules containing unit tests here.
                    "spec/notepadSpec"
                ], function () {
                    jasmine.getEnv().addReporter(new jasmine.HtmlReporter());
                    jasmine.getEnv().execute();
                });
        </script>
    </head>
<body>
</body>
</html>
Вот specRunner.js(config)
require.config({
    urlArgs: 'cb=' + Math.random(),
    paths: {
        jquery: 'lib/jquery',
        jasmine: 'lib/jasmine/lib/jasmine',
        'jasmine-html': 'lib/jasmine/lib/jasmine-html',
        spec: 'lib/jasmine/spec/'
    },
    shim: {
        jasmine: {
            exports: 'jasmine'
        },
        'jasmine-html': {
            deps: ['jasmine'],
            exports: 'jasmine'
        }
    }
});
Вот спецификация:
require(["../lib/jasmine/src/notepad"], function (notepad) {
    describe("returns titles", function() {
        expect(notepad.noteTitles()).toEqual("");
    });
});
Источник блокнота:
define(['lib/jasmine/src/note'], function (note) {
    var notes = [
        new note('pick up the kids', 'dont forget to pick  up the kids'),
        new note('get milk', 'we need two gallons of milk')
    ];
    return {
        noteTitles: function () {
            var val;
            for (var i = 0, ii = notes.length; i < ii; i++) {
                //alert(notes[i].title);
                val += notes[i].title + ' ';
            }
            return val;
        }
    };
});
И источник примечаний (JIC):
define(function (){
    var note = function(title, content) {
        this.title = title;
        this.content = content;
    };
    return note;
});
Я убедился, что в отношении приложения правильные пути. Как только я получу эту работу, я могу играть с настройкой этих путей, чтобы она не была такой яркой.