フロントエンド/バックエンド開発のテストと分離をより良くするために、私たちは現在、devModeにモックサービス実装を提供する動的な方法を探しています。Angular2インジェクタ - 動的にサービス実装を選択
アイデアは、あなたの環境でサービスを嘲笑し、インジェクタがこれに基づいて実際の実装または模擬実装を返すように指定することです。
インジェクタが提供するすべてのサービスに対して動的にこれを行うことができる場合、またはすべてのサービスに対して別々の工場(同じことをやっている)を使用する必要があるかどうかという疑問は今ですか?
// pseudo code
onRequestProviderFor(serviceName)
{
if(environment.mockTheseServices.contains(serviceName))
{
return new "Mock"+serviceName.ts
}
else
{
return new serviceName.ts
}
}
これは可能ですか?そして、これを行うために使用できるインジェクタプロセスには、(devModeで)フックがありますか?
私はサービスごとに別々の工場が必要だと思います。いくつかのコード生成を行うことができます。これはバレルファイルを更新し、同じインポートが異なるクラスになるようにします。 –
あなたはあなたがそれを試して、あなたがアプリケーションをブートストラップするときにカスタムプロバイダを追加することができますか? – jonrsharpe
あなたはそのコード 'environment.mockTheseServices.contains(serviceName)'を本番環境に持っていますか? –