测试时自定义注释

时间:2017-02-15 22:06:03

标签: java spring-boot annotations

我有一些测试需要运行Spring上下文:

@SpringBootTest
@ContextConfiguration(classes = Application.class)
@Transactional
@ActiveProfiles("test")
@Rollback
@RunWith(SpringRunner.class)
public class SomeTest() {

    @Test
    public void test() {
        ...
    }

}

我为测试创建了自定义注释:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@SpringBootTest
@ContextConfiguration(classes = Application.class)
@Transactional
@ActiveProfiles("test")
@Rollback
@RunWith(SpringRunner.class)
public @interface DBTest {
}

现在 - 当我在我的测试中使用@DBTest注释时:

@DBTest
public class SomeTest {

    @Test
    public void test() {
        ...
    }

}

在这种情况下,Spring上下文未启动。 我怎么能开始呢?

1 个答案:

答案 0 :(得分:3)

尝试将@RunWith(SpringRunner.class)放入SomeTest类注释中。为了应用注释,您需要弹簧来分析它们。但是因为你的RunWith不在你的类上,所以jUnit框架不会启动spring,反过来,它不会分析注释。