現在、Spring-MVC でTogglzライブラリを実装しようとしています。
現在、コード内のトグルをMyFeatures.java
ファイルから次の方法で管理しています。
import org.togglz.core.Feature;
import org.togglz.core.annotation.EnabledByDefault;
import org.togglz.core.annotation.Label;
import org.togglz.core.context.FeatureContext;
public enum MyFeatures implements Feature {
@Label("A Feature")
MY_FEATURE;
public boolean isActive() {
return FeatureContext.getFeatureManager().isActive(this);
}
}
次に、実際のクラスで次のようにします。
if (MyFeatures.MY_FEATURE.isActive()) {
// some code...
}
これはうまく機能しますが、次のことを行うテストに欠陥があります。
@Rule
public TogglzRule togglzRule = TogglzRule.allDisabled(MyFeatures.class);
// some tests, then:
if (MyFeatures.MY_FEATURE.isActive()) {
// some feature dependent test...
}
ここでの問題は、トグルMyFeature.java
がデフォルトで無効に設定されており、UI またはこのMyFeatures.java
ファイル内でオン/オフが切り替えられることです。しかし...テストのトグルはデフォルトで有効に設定されており、次のいずれかの行でオン/オフを切り替えます。
@Rule
public TogglzRule togglzRule = TogglzRule.allDisabled(MyFeatures.class);
または各テストで個別に。
これは、機能をオフにする必要がある少なくとも 2 つの場所です。これらの機能を使用するテストがさらにある場合は、さらに多くの場所がある可能性があります。私の質問は次のとおりです。
コードまたはテストに関係なく、すべての Togglz 機能トグルを 1 つの場所から制御することは可能ですか?