Java 注释 - 代码简化

标签 java spring testing annotations spring-test

我正在寻找一种简化以下代码的方法。

@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/

相关文章:

java - 文件大小对于 java 来说太大

java - Spring @Autowired 字段 - 哪个访问修饰符,私有(private)或包私有(private)?

testing - 使用 Watir 创建测试 "framework"的提示?

ios - 我无法在 UnitTest 中获取 BundleVersionKey、BundleIdentiferKey

testing - 如何使用 RequireJS 加载模块以在像 Jasmine 这样的测试框架中进行测试?

Java 包无法编译

java - 复杂的字符串匹配

java - 如何在JPA中选择一列并按该列进行分组?

java - 如何在java中进行分栏

java - spring 生成的页面上的 Jquery 覆盖表单