我们将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()。
最佳答案
如果扩展org.mule.tck.FunctionalTestCase类,则必须遵循其规则,即。覆盖doSetUp()。请注意,JUnit文档未概述doSetUp(),因为它特定于FunctionalTestCase。
否则,请扩展对Junit4友好的org.mule.tck.junit4.FunctionalTestCase。