我正在使用 Spring 3.0.4 和 JUnit 4.5。我的测试类当前使用 Spring 的注释测试支持,语法如下:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration (locations = { "classpath:configTest.xml" })
@TransactionConfiguration (transactionManager = "txManager", defaultRollback = true)
@Transactional
public class MyAppTest extends TestCase
{
@Autowired
@Qualifier("myAppDAO")
private IAppDao appDAO;
...
}
我真的不需要这条线扩展测试用例运行此测试。单独运行这个测试类时不需要它。我必须添加扩展测试用例这样我就可以将它添加到 TestSuite 类中:
public static Test suite() {
TestSuite suite = new TestSuite("Test for app.dao");
//$JUnit-BEGIN$
suite.addTestSuite(MyAppTest.class);
...
如果我省略扩展测试用例,我的测试套件将无法运行。 Eclipse 将标记suite.addTestSuite(MyAppTest.class)作为错误。
如何将 Spring 3+ 测试类添加到测试套件?我确信有更好的方法。我已经谷歌搜索并阅读了文档。如果你不相信我,我愿意把我所有的书签寄给你作为证据。但无论如何,我更希望得到一个有建设性的答案。多谢。
你是对的; JUnit4 风格的测试不应扩展junit.framework.TestCase
您可以通过以下方式将 JUnit4 测试作为 JUnit3 套件的一部分:
public static Test suite() {
return new JUnit4TestAdapter(MyAppTest.class);
}
通常你会将此方法添加到MyAppTest
班级。然后,您可以将此测试添加到更大的套件中:
public class AllTests {
public static Test suite() {
TestSuite suite = new TestSuite("AllTests");
suite.addTest(MyAppTest.suite());
...
return suite;
}
}
您可以通过创建一个带有注释的类来创建 JUnit4 风格的套件Suite http://junit.sourceforge.net/javadoc/org/junit/runners/Suite.html
@RunWith(Suite.class)
@SuiteClasses( { AccountTest.class, MyAppTest.class })
public class SpringTests {}
注意AccountTest
可以是 JUnit4 风格的测试或 JUnit3 风格的测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)