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

时间:2015-02-11 16:30:36

标签: java junit mockito inner-classes runner

我有以下单元测试架构:

@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注释的方法

我找到了决定 - 忽略基类。

它看起来像黑客。有更优雅的方式吗?

1 个答案:

答案 0 :(得分:1)

Base移到ProductTest类之外(可以在同一个文件中),然后将RunWith移到具体的类中。