1
私のアプリは現在のセッションに関する情報をlocalStorage
に保存します。したがって、すべてのテストファイルの各テストの前または後にlocalStorage
をクリアするテストが必要です。各テストファイルではなく、beforeEach
またはafterEach
コールバックをグローバルに定義する方法はありますか?ember qunitテストのためのグローバルbeforeEach/afterEach
私のアプリは現在のセッションに関する情報をlocalStorage
に保存します。したがって、すべてのテストファイルの各テストの前または後にlocalStorage
をクリアするテストが必要です。各テストファイルではなく、beforeEach
またはafterEach
コールバックをグローバルに定義する方法はありますか?ember qunitテストのためのグローバルbeforeEach/afterEach
ほぼ同じ理由で、ember-qunitのmodule
、moduleFor
、およびmoduleForComponent
をラップしました。そしてember-qunitの代わりにそれらのラッパーをインポートしています。
もう1つの提案は、localStorageをサービスでラップすることです。このサービスを除いて、絶対にlocalStorageにアクセスしないでください。だから、あなたはテストでそれの模擬実装を使用することができます。
更新日:それが実現されている方法
:
import { moduleFor, moduleForModel, test, only, setResolver } from 'ember-qunit';
import { moduleForComponent as qunitModuleForComponent } from 'ember-qunit';
function moduleForComponent(name, description, callbacks) {
//our implementation that wraps "qunitModuleForComponent"
//eg. init commonly used services vs.
}
export {
moduleFor,
moduleForComponent,
moduleForModel,
test,
only,
setResolver
};
長所:
moduleForValidatableComponent
、moduleForLocalStorage
短所:など
ember-qunit
をインポートするテストを生成します。開発者は、インポートステートメントをこれらのラッパーに変更する必要があります。時々忘れられてしまった。 (テストが失敗すると、開発者はインポートステートメントを変更する必要があることを覚えています)。
サービスを使ってlocalStorageをラップするヒントをありがとう。しかし、私はまだこの機能が私の現在の具体的な必要性を超えて便利になることができれば、ember-qunitのメソッドをラップすることに関してあなたが言及したものを好む。ラッピングがどのように機能するかを詳しく説明できますか? – Ernesto
@Ernestoが更新されました – ykaragol