我正在寻找一种简化以下代码的方法。
@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);
}
}
但这是行不通的。任何想法?
最佳答案
您可以将这些注释放在超类上:
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {
// My configuration classes
})
public abstract class AbstractIntegrationTest { ... }
。
public class MyServiceTest extends AbstractIntegrationTest { ... }
这种方法还允许您在基类中声明常见的
@Autowired
依赖项,并在具体测试中自定义@ContextConfiguration
类。