どのようにメイクグローバル動的プロパティユニットテスト可能なコードを使用していますか?

裾:

多くのコードは、アプリケーションの流れを制御するために、いくつかのグローバルフラグまたはプロパティを使用する必要があります。シナリオの多くは、ロック/アンロックする(新しい)コードの特定の部分を旗を持っています動的キャッシュを維持することが必要です。

このようなすべてのシナリオでは、私は通常、このように書きます。

''' 
void someMethod(Data data){
  if(DynamicProperty.getValue("OK"))
    // Do Something

}

DynamicPropery定期的にDBからキャッシュをリフレッシュするシングルトンです。
これに伴う問題は、これまで私が使用した、ユニットテストは少しトリッキーですJmockitをすることを周りを取得する-それは罰金に動作します。
ユニットテストのために簡単にすることができるような方法を書くためのより良い方法があることができればしかし、私は思っていました。

マチェイコワルスキー:

あなたは、いくつかの並べ替えでは、すべてのプロパティ検索を隔離することができPropertyResolverBean、その後、あなたのSUTの中と静的呼び出しを交換することを注入します:

private PropertyResolverBean injectedPropertyResolverBean;

void someMethod(Data data){
  if(injectedPropertyResolverBean.getValue("OK"))
    // Do Something

}

そして、あなたはそのBeanを模擬するために、例えばMockitoの基本的な機能を使用して事前に設定することができ、あなたのテストあなたが望むように。

あなたはSRPルールを次の終わりより、保守が読みやすく、テスト可能なコードで終わります。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=118374&siteId=1
おすすめ