我们将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具有名为doS​​etUp()的方法,可以在测试中覆盖该方法。就像@Before方法一样,它在每次测试之前都被调用。我仍然希望使用注释,因为JUnit文档中未概述doSetUp()。

最佳答案

如果扩展org.mule.tck.FunctionalTestCase类,则必须遵循其规则,即。覆盖doSetUp()。请注意,JUnit文档未概述doSetUp(),因为它特定于FunctionalTestCase。

否则,请扩展对Junit4友好的org.mule.tck.junit4.FunctionalTestCase。

10-06 16:14