1

ジャスミンを使用してDS.Modelをテストしようとしています。レコードを作成するときに正しく設定されていることをテストしようとしています。

私がする時

bb = App.BuildingBlock.createRecord(name: "Test")

エラーが発生します

未定義のプロパティ'createRecord'を読み取ることができません

しかし、私がそうするなら

bb = App.BuildingBlock.create(name: "Test")

私は得る

エラー:モデルを呼び出さないcreateでください。代わりに、createRecord設定する属性を使用して呼び出します。

だからそれはそのモデルを知っているようです??? また、私がする場合

expect(App.BuildingBlock).toBeDefined()

合格します。

誰かがこれで私を助けますか?

ありがとうリック

4

2 に答える 2

1

スペックの先頭に以下を追加します

store = DS.Store.create({ revision: 4 })

次に、

store.createRecord(App.BuildingBlock, {name: "Test"});

表示されているエラーの理由は、DS.ModelがcreateRecordをストアにエイリアスしているためです。これが未定義です。

model.jsの下部に、次の行が表示されます。

DS.Model.reopenClass({
  isLoaded: storeAlias('recordIsLoaded'),
  find: storeAlias('find'),
  filter: storeAlias('filter'),

  _create: DS.Model.create,

  create: function() {
    throw new Ember.Error("You should not call `create` on a model. Instead, call `createRecord` with the attributes you would like to set.");
  },

  createRecord: storeAlias('createRecord')
});
于 2012-07-23T11:49:25.197 に答える
0

問題のJsFiddleを作成してみてください。DSモデルを作成するための最初の呼び出しに問題はありません。DSモデルで.create()を呼び出すことはできません。これは理にかなっており、DSモデルが存在しているように見えます。これらのテストは、createRecord AppまたはBuildingBlockへの呼び出しが存在しない2つの異なるセットアップで実行されていますか?あなたのストアがあなたのアプリ(App.store)で定義されていて、そこに何か問題があることを確認しますか?

于 2012-07-20T18:13:20.947 に答える