私はまだテストされていない複雑な構造化バックボーンアプリケーションを持っています。Mochaテストで名前空間付きモデルを要求する方法は?
私はテストスイートとしてMocha + Chaiを選択しましたが、いくつかのモジュールを含めるには問題があります。
すべてのモデル
が、私はそれがエラーを投げた'use strict';
require ('mocha');
var Service = require ('../../client/model/Service.js')
var expect = require ('chai').expect;
describe('Testing Service model', function(){
it('should create global variable for Service', function(){
expect(Service).to.be.exist;
});
});
、
のような単純なテストを書くことを試みたときにModel.Service = Backbone.Model.extend({
...
...
Model.Partner = Backbone.Model.extend({
...
...
etc.
モデルの名前空間自体が
//global_vars.js
var GLOBAL = window;
...
GLOBAL.Model = {};
として宣言され、として名前空間されています
Model.Service = Backbone.Model.extend({
^
ReferenceError: Model is not defined
追加、Service
宣言の前に
require('../../client/global_vars.js');
が、今回は
var GLOBAL = window;
^
ReferenceError: window is not defined
が、私は本当にありません、実際にはJavaScriptのMVC構造、ノードモジュールを含めるなどに精通していないよとなりました掘り起こす方法を知る
必要に応じてディレクトリ構造
$ tree source/client/
source/client/
├── Application.js
├── collection
│ ├── I18n.js
│ ├── Invoice.js
│ └── Service.js
├── controller
│ ├── hardware
│ │ └── Cash.js
│ ├── Hardware.js
│ ├── I18n.js
│ ├── Remote.js
│ └── ServiceManager.js
├── draft.js
├── global_vars.js
├── lib
│ ├── access_deep_object.js
│ ├── backbone.validation.async.js
│ ├── color_transition.js
│ ├── dom_utils.js
│ ├── error.js
│ ├── jquery.form.serialize_object.js
│ ├── number_utils.js
│ ├── path.js
│ ├── promise_core.js
│ ├── remove_regexp_specials.js
│ ├── stringTemplate.js
│ ├── string_utils.js
│ └── the_key.js
├── model
│ ├── Cacheable.js
│ ├── Controller.js
│ ├── Countdown.js
│ ├── Device.js
│ ├── hardware
│ │ ├── BillAcceptor.js
│ │ ├── CashDispenser.js
│ │ ├── IDReader.js
│ │ ├── SmartCoin.js
│ │ └── ThermalPrinter.js
│ ├── I18n.js
│ ├── Invoice.js
│ ├── Object.js
│ ├── Partner.js
│ ├── Performer.js
│ ├── ServerSideEvent.js
│ ├── Service.js
│ ├── Session.js
│ ├── Storage.js
│ └── Transaction.js
├── start.js
├── template
................
├── vars.js
├── vendor
................
└── view
├── AppView.js
├── Console.js
├── ModalWindow.js
├── page
│ ├── about.js
│ ├── articles
│ │ ├── list.js
│ │ └── tiles.js
│ ├── checkout
│ │ ├── card.js
│ │ └── cash.js
│ ├── custom
│ │ └── mobile_operator
│ │ ├── auth.js
│ │ └── packages.js
│ ├── exception
│ │ ├── connection.js
│ │ ├── dataloss.js
│ │ ├── emergency.js
│ │ └── transaction.js
│ ├── gallery.js
│ ├── input
│ │ ├── phone.js
│ │ └── text.js
│ ├── select
│ │ └── packages.js
│ ├── single_invoice.js
│ ├── start.js
│ ├── test
│ │ ├── hardware.js
│ │ └── payment.js
│ └── thankyou.js
├── Page.js
├── Prototype.js
└── Registration.js
50 directories, 127 files
私は端末でテストを行っています。あなたの最後のスニペットを試してみましょう。 – marmeladze