如果我使用 inner 类 进行单元测试架构,如何避免忽略测试?

How to avoid ignore tests if I use inner classes for unit testing architecting?

我有以下单元测试架构:

@RunWith(Enclosed.class)
public class ProductTest {

    @RunWith(MockitoJUnitRunner.class)
    public static abstract class Base {...}

    public static class Test1 extends Base{
        @Test
        public void foo(){...}
        }
    }

    public static class Test2 extends Base{
        @Test
        public void bar(){...}
        }
    }
}

如果我 运行 进行单元测试,我会看到以下错误消息:

org.mockito.exceptions.base.MockitoException: 

No tests found in Base
Haven't you forgot @Test annotation?

Mockito 试图告诉我 Base 是测试位没有用 @Test

注释的方法

我找到了决定 - 忽略基础 class。

有点像黑客。有没有更优雅的方式?

Base 移动到 ProductTest class 之外(可以在同一文件中)并将 RunWith 移动到具体的 classes.