我们正在使用org.mule.tck.FunctionalTestCase来测试用例。它是一个抽象的JUnit测试用例。
这是在pom.xml中声明依赖项的方式:
...
<dependency>
<groupId>org.mule.tests</groupId>
<artifactId>mule-tests-functional</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
...
这是测试代码的样子:
import org.junit.Before;
import org.mule.tck.FunctionalTestCase;
public class SomeSuiteTest extends FunctionalTestCase {
protected String getConfigResources() {
return "my-mule-config.xml";
}
@Before
public void doStuff() {
...
}
public void testThisCode() throws Exception {
...
}
}
问题是永远不会调用doStuff()。我的理解是在每次测试之前都会调用@Before注释的方法。此外,@ Test注释不是插件的一部分。看来我也需要从org.junit导入它,但我不相信它是受支持的。
使用org.mule.tck.FunctionalTestCase时我们可以使用JUnit注释吗?
---更新---
我发现FunctionalTestCase的父类AbstractMuleTestCase有一个名为doSetUp()的方法,我可以在测试中覆盖它。像@Before方法一样,它在每次测试之前调用。我仍然更喜欢注释,因为在JUnit文档中没有概述doSetUp()。
答案 0 :(得分:4)
如果扩展org.mule.tck.FunctionalTestCase类,则必须遵循其规则,即。覆盖doSetUp()。请注意,JUnit文档中未概述doSetUp(),因为它特定于FunctionalTestCase。
否则,请扩展org.mule.tck.junit4.FunctionalTestCase,这是友好的Junit4。