0

現在、私はこれをやっています:

expect( tasks.at(0).get('title') ).to.be('Root')
expect( tasks.at(0).get('next') ).to.be(true)

しかし、もっと良い方法があるはずです。私はむしろこのようなことをしたい:

expect(tasks.at(0).attributes).to.eql({title:'Root', next:true})

しかし、それはtasks.at(1).attributes他の多くの属性を持っているため機能しないため、厳密には一致しません。何か案は?私はexpectjs以外のものを使用しても問題ありません。

4

1 に答える 1

0

それが最善の方法かどうかはわかりませんが、@ skizeeyからアドバイスを受けて、独自のテスト拡張機能を作成しました。言い換えれば、今私は(コーヒースクリプトで)呼び出します:

expect(tasks).to.have.modelAttributes
  1: title:'Root'
  2: title:'Child'

私が使用したコードは、使用しているテストライブラリ(Chaiに切り替え)にかなり固有ですが、一般的な考え方は、ハッシュを反復処理し、インデックスを抽出してから、各key:valueを確認することです。これが私のコードの一般的な例です:

    # Check each index
    for index of properties
        # Iterate over each key:value in each index
        for key of properties[index]
于 2012-07-20T20:20:47.007 に答える