我希望将Spring Profiles and Configurations的灵活性与使用Parameterized或Theories注释的JUnit测试的并行运行相结合。有没有办法合并所有这些功能,让我的单元测试运行?
我一直遇到的问题是需要访问注入bean的参数,这是不可能的,因为使用@Parameters或@DataPoints注释的函数应该是静态的。我真的很讨厌必须将它连接到每个类甚至某个静态函数,因为我希望能够快速切换配置文件而无需更改Java代码。这可能吗?
答案 0 :(得分:2)
找到此请求的ticket。看来附件有一些问题。看起来这已经是一段时间的功能请求了。
答案 1 :(得分:2)
我一直在寻找这个问题的解决方案。还有一个!但是,因为它来自某人的博客,但我无法承认它。 : - )
不幸的是我找不到原来的博客......
@RunWith(Parameterized.class)
@ContextConfiguration("/beans.xml")
public class MyTest {
private final File file;
public MyTest(final File file) {
this.file = file;
}
@Autowired
private PlatformTransactionManager transactionManager;
private TestContextManager testContextManager;
@Parameterized.Parameters
public static Collection<File[]> getFilesToTest() throws Exception {
return getValidFiles();
}
@Before
public void setUpSpringContext() throws Exception {
testContextManager = new TestContextManager(getClass());
testContextManager.prepareTestInstance(this); // does the autowiring !
}
@Test
public void testInTransactionContext() throws Exception {
new TransactionTemplate(transactionManager).execute(new TransactionCallback() {
public Object doInTransaction(final TransactionStatus status) {
status.setRollbackOnly();
try {
... run the test ...
} catch (Exception e) {
throw new RuntimeException(e);
}
return null;
}
});
}
}