所有enum java实例的模拟方法

所有enum java实例的模拟方法,java,android,unit-testing,Java,Android,Unit Testing,我想对枚举的所有实例模拟shouldShow()方法。有人能帮忙吗 public enum MyButton implements ListButton { Button1( R.drawable.drawable1) { // Some methods here }, Button2( R.drawable.drawable2) { //Some methods here };

我想对枚举的所有实例模拟shouldShow()方法。有人能帮忙吗

public enum MyButton implements ListButton {
    Button1(
        R.drawable.drawable1) {
             // Some methods here
    },
    Button2(
            R.drawable.drawable2) {
        //Some methods here
    };

    @Override
    public boolean shouldShow() {
        //Some logic that decides whether to show the button or not
    }
}

我想模拟一下,如果我调用Button1.shouldShow或Button2.shouldShow,或者enum.shouldShow中的任何其他值,我的存根应该返回true。

我想
shouldShow()
方法是
列表按钮
接口的一部分。如果您的设计经过深思熟虑,那么您最有可能是在模仿一个
ListButton
,而不是模仿任何特定的
MyButton


Java枚举常量本质上是公共静态最终字段,因此在特定的
MyButton
常量上模拟
shouldShow()
方法相当于在静态最终字段上模拟方法。

我想
shouldShow()
方法是
ListButton
接口的一部分。如果您的设计经过深思熟虑,那么您最有可能是在模仿一个
ListButton
,而不是模仿任何特定的
MyButton


Java枚举常量本质上是公共静态最终字段,因此在特定的
MyButton
常量上模拟
shouldShow()
方法相当于在静态最终字段上模拟方法。

这样做的目的是什么?我的理解是,您不能用这种方式模拟枚举,但通常您仍然可以用其他方式实现所需的测试。我知道我可以使用powermock测试函数,但是我必须模拟很多静态。我试图避免这样做,不知何故嘲笑shouldShow函数本身;那不是我要问的。在您的测试用例中,当您试图模拟此方法时,您测试的是什么?该测试用例的更广泛的目标是什么?广泛的目标是测试我是否能够正确地或现在对特定布局进行充气。我的充气方法调用了一组私有方法,其中一个调用了这个shouldShow方法来检查这个按钮是否被显示。现在,我不能避免调用那个私有方法,也不能因为它是私有的而模仿那个方法。所以我想模拟这个shouldShow方法的调用,因为我并不关心这个按钮是否被显示,因为这不是我真正要测试的。你想通过这样做来实现什么?我的理解是,您不能用这种方式模拟枚举,但通常您仍然可以用其他方式实现所需的测试。我知道我可以使用powermock测试函数,但是我必须模拟很多静态。我试图避免这样做,不知何故嘲笑shouldShow函数本身;那不是我要问的。在您的测试用例中,当您试图模拟此方法时,您测试的是什么?该测试用例的更广泛的目标是什么?广泛的目标是测试我是否能够正确地或现在对特定布局进行充气。我的充气方法调用了一组私有方法,其中一个调用了这个shouldShow方法来检查这个按钮是否被显示。现在,我不能避免调用那个私有方法,也不能因为它是私有的而模仿那个方法。所以我想模拟对shouldShow方法的调用,因为我并不关心这个按钮是否显示,因为这不是我真正要测试的。