我正在寻找一种简化以下代码的方法。
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {
// My configuration classes
})
public class MyServiceTest {
@Autowired
private MyService service;
@Test
public void myTest() {
Assert.assertTrue(service != null);
}
}
我有很多配置类,我不想将它们放入每个测试类中。所以我想到了创建自己的注释:
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {
// My configuration classes
})
public @interface IntegrationTests {
}
我尝试按以下方式使用它:
@IntegrationTests
public class MyServiceTest {
@Autowired
private MyService service;
@Test
public void myTest() {
Assert.assertTrue(service != null);
}
}
但是这不起作用。有什么想法吗?
最佳答案
您可以将这些注释放在父类(super class)上:
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {
// My configuration classes
})
public abstract class AbstractIntegrationTest { ... }
.
public class MyServiceTest extends AbstractIntegrationTest { ... }
此方法还允许您在基类中声明常见的 @Autowired
依赖项,并在具体测试中自定义 @ContextConfiguration
类。
关于Java 注释 - 代码简化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30696155/