これは単なる JavaScript スコープの質問だと思います。
Jasmine テストを Backbone アプリケーションに追加しようとしていますが、Jasmine セットアップ内から Backbone モデルにアクセスする方法がわかりません。
これは私の現在のアプリケーション構造です (main.js
は私のバックボーン アプリケーションです):
index.html
js/
main.js
vendor/
backbone.js
jquery.min.js // etc
tests/
SpecRunner.html
spec/
testSpec.js
の内容main.js
はこのようなもので、からすべて正常に実行されていindex.html
ます:
$(function(){
var Todo = Backbone.Model.extend({
defaults: function() {
return {};
},
... etc
SpecRunner.html 内のファイルは次のようになります。
<!-- include source files here... -->
<script src="/js/vendor/jquery-1.10.2.min.js"></script>
<script src="/js/vendor/underscore.js"></script>
<script src="/js/vendor/backbone.js"></script>
<script src="/js/main.js"></script>
<!-- include spec files here... -->
<script type="text/javascript" src="spec/testSpec.js"></script>
でこのテストを書きましtestSpec.js
たが、次のエラーで失敗しReferenceError: Todo is not defined
ます:
describe("Todo tests", function(){
var todo = new Todo("Get the milk", "Tuesday");
it("should be correctly defined", function(){
expect(todo).toBeDefined();
});
it("should have the correct title", function(){
expect(todo.title).toBe("Get the milk");
});
});
どうすれば Todo スコープを取得できますか? 試してみましwindow.Todo
たが、それも役に立ちません。