本文介绍了Java注解——代码简化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在寻找一种方法来简化以下代码.
I am looking for a way to simplify the following code.
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {
// My configuration classes
})
public class MyServiceTest {
@Autowired
private MyService service;
@Test
public void myTest() {
Assert.assertTrue(service != null);
}
}
我有很多配置类,我不想把它们放到每个测试类中.所以我有了创建自己的注释的想法:
I have many configuration classes and I don't want to put them into each test class. So I got the idea to create my own annotation:
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {
// My configuration classes
})
public @interface IntegrationTests {
}
我尝试通过以下方式使用它:
I try to use it in the following way:
@IntegrationTests
public class MyServiceTest {
@Autowired
private MyService service;
@Test
public void myTest() {
Assert.assertTrue(service != null);
}
}
但它不起作用.有什么想法吗?
But it doesn't work. Any idea?
推荐答案
您可以将这些注解放在超类上:
You can place these annotation on a superclass:
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {
// My configuration classes
})
public abstract class AbstractIntegrationTest { ... }
.
public class MyServiceTest extends AbstractIntegrationTest { ... }
这种方法还允许您在基类中声明常见的@Autowired
依赖项,并在具体测试中自定义@ContextConfiguration
类.
This approach also allows you to declare common @Autowired
dependencies in the base class and customize @ContextConfiguration
classes in concrete tests.
这篇关于Java注解——代码简化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!