1

現在、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 つの場所から制御することは可能ですか?

4

1 に答える 1