ember の統合テスト パッケージ ( http://emberjs.com/guides/testing/integration/ ) を試していますが、このエラーが発生しています
Assertion Failed: You have turned on testing mode, which disabled the run-loop's autorun.
You will need to wrap any code with asynchronous side-effects in an Ember.run
このエラーを再現するために JSBin を作成しました: http://jsbin.com/InONiLe/9。ブラウザのコンソールを開くと確認できます。
このエラーの原因は、 のメソッド内の行data.set('isLoaded', true);
にあると思います。(コードへのリンク: http://jsbin.com/InONiLe/9/edit )load()
App.Posts
ここで、data.set('isLoaded', true);
行を で囲むEmber.run()
と、期待どおりに機能し、テストに合格します。
ただし、私は多くのモデルにこのパターンを使用しており、すべて.set()
を でラップしたくありませんEmber.run()
(トランジションでも同じエラーが発生します)。また、テストを機能させるためにアプリケーション コードを変更したくありません。
エラーを修正するために他にできることはありますか?
注: 意図的にモデル フックで promise を返さないようにしています。そうしないと、promise が解決されるまで UI がブロックされるためです。ローディング スピナーを表示できるように、ルートへの遷移をすぐに実行したいと考えています。