/ / einschließlich backbone.js in Jasmines Spezifikation - Javascript, Unit-Testing, backbone.js, Jasmin

einschließlich backbone.js in Jasmins Spezifikationen - javascript, unit-testing, backbone.js, jasmine

Ich bin ziemlich neu in backbone.js (und in JavaScript im Allgemeinen) und versuche, ein Modell mit Jasmine zu testen (ich verwende jasmine-node dafür). Meine Verzeichnisstruktur ist wie folgt:

project/
src/models/mymodel.js
spec/mymodel.spec.js
lib/backbone-min.js

Nun ist meine Frage, wie ich das Rückgrat mache.js für das Modell und die Spezifikation verfügbar, ohne sie in eine HTML-Seite aufzunehmen? Ich möchte den js Code vom html entkoppelt lassen und nur die Tests mit jasmine-node ausführen können

Antworten:

0 für die Antwort № 1

Ja, wenn Sie die Backbone- (und Unterstrich-) Module von node.js verwenden, können Sie diese bei Bedarf in Ihrem Modell anfordern.

/models/car.js

var args = typeof exports !== "undefined" ? [exports, require("Backbone")] : [window, window.Backbone];

(function (exports, backbone){

exports.Car = backbone.Model.extend({
onHornPress: function () {
return "HONK";
}
});

}).apply(undefined, args);

/specs/car.spec.js

var Backbone = require("Backbone"),
Car = require("../models/car.js").Car;

describe("when the horn is pressed", function(){
var car;

beforeEach(function(){
car = new Car();
});

it("should honk.", function(){
var result = car.onHornPress();
expect(result).toEqual("HONK");
});

});

/myapp.html

<html>
<head>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js"></script>
<script type="text/javascript" src="models/car.js"></script>
</head>
<body>
<script type="text/javascript">

var car = new Car();

console.log(car.onHornPress());

</script>
</body>
</html>