0

私は一口ベースのプロジェクトを持っており、アプリケーションをビルドするためにbrowserifyとを使用しています。debowerifyアプリケーション

  1. Backbone に依存 - bower コンポーネントとしてインストールされます。
  2. いくつかの追加requireのドメイン クラスがありbackboneます。

1上記の asvendor.js2上記の asをビルドapp.jsし、これらの両方のファイルを html ファイルに含めます。これは正常に動作します。

今、テープを使用してテストをセットアップしようとしています。modelクラスのテストから始めました。

var todoModel = require('../../libs/todo/model/todo.js').Todo;
var test = require('tape');
var aTodo = new todoModel();

test('todo model test',function(t){
  eyes.inspect(atodo, "one");
  t.equal(1,one.valueOf(),'one should be equal to one');
  t.end();
});

libs/todo/model/todo.js:

  var Backbone = require('backbone');
  var Storage = require('../helpers/storage.js');
  var Todo = Backbone.Model.extend({
      ...
  })

このテストを として実行するとtape test/model-test.js、(予想される) エラーが として発生し Error: Cannot find module 'backbone'ます。では、bower 候補backboneを node.js テスト スクリプトで使用できるようにするにはどうすればよいでしょうか。

注: 簡単な回避策はbackbone、ノードの依存関係として を追加することですが、架空のライブラリが bower でしか利用できない場合はどうなるでしょうか?

4

1 に答える 1

0

試してみませんか

require('./your/path/to/backbonejs/probably/bower_components/etc');

?

とにかく、これはテスト環境のセットアップ方法に関連していると思います。ジャスミンなどを使用しているかどうかはわかりませんが、ジャスミンでは、たとえばangularをテストできるようにangularMockファイルを追加する必要がありました。

あなたが言及したようにテスト目的でない限り、フロントエンドで使用することを意図している場合、バックエンドからバックボーンを必要とする理由を理解できません。質問は、バックボーンを必要とするよりもテストをセットアップする方法に関連する必要があります

于 2014-08-26T18:40:49.433 に答える