7

我对正确运行的 Web 应用程序进行了一系列功能测试,但每个测试都需要使用@BeforeClass@AfterClass注释提供的类级别设置和拆卸,因此需要 JUnit 4.0 或更高版本。

现在我想使用少量这些功能测试来执行负载测试,模拟大量用户请求 Web 应用程序的相关页面。为了让每个用户在 JWebUnit 中拥有自己的“模拟浏览器”,我需要在 JUnitPerf 中使用 TestFactory 来实例化被测类,但是由于 JUnit 4 测试是用 注释@Test而不是从 派生的TestCase,所以我得到了一个TestFactory must be constructed with a TestCase class例外。

有人成功使用 JUnitPerf 及其 TestFactory 和 JUnit 4 吗?让这一切奏效的秘诀是什么?

4

1 回答 1

10

你需要一个 JUnit4 感知的 TestFactory。我在下面包括了一个。

import junit.framework.JUnit4TestAdapter;
import junit.framework.TestCase;
import junit.framework.TestSuite;

import com.clarkware.junitperf.TestFactory;

class JUnit4TestFactory extends TestFactory {

    static class DummyTestCase extends TestCase {
        public void test() {
        }
    }

    private Class<?> junit4TestClass;

    public JUnit4TestFactory(Class<?> testClass) {
        super(DummyTestCase.class);
        this.junit4TestClass = testClass;
    }

    @Override
    protected TestSuite makeTestSuite() {
        JUnit4TestAdapter unit4TestAdapter = new JUnit4TestAdapter(this.junit4TestClass);
        TestSuite testSuite = new TestSuite("JUnit4TestFactory");
        testSuite.addTest(unit4TestAdapter);
        return testSuite;
    }

}
于 2008-09-19T03:39:12.170 回答