使用JMockit失败的TestNG测试用例“用于记录期望的无效上下文”

时间:2011-10-26 04:59:05

标签: maven-2 maven maven-3 testng jmockit

以下TestNG(6.3)测试用例生成错误“记录期望的无效上下文”

@Listeners({ Initializer.class })
public final class ClassUnderTestTest {

private ClassUnderTest cut;

@SuppressWarnings("unused")
@BeforeMethod
private void initialise() {
    cut = new ClassUnderTest();
}

@Test
public void doSomething() {
    new Expectations() {
        MockedClass tmc;
        {
            tmc.doMethod("Hello"); result = "Hello";
        }
    };
    String result = cut.doSomething();
    assertEquals(result, "Hello");
}

}

受测试的课程如下。

public class ClassUnderTest {

MockedClass service = new MockedClass();
MockedInterface ifce = new MockedInterfaceImpl();

public String doSomething() {
    return (String) service.doMethod("Hello");
}

public String doSomethingElse() {
    return (String) ifce.testMethod("Hello again");
}
}

我假设因为我使用的是@Listeners注释,所以我不需要javaagent命令行参数。这个假设可能是错误的......

有谁可以指出我错过了什么?

1 个答案:

答案 0 :(得分:1)

JMockit-TestNG Initializer必须在整个测试运行中运行一次,因此在单个测试类上使用@Listeners将无效。

相反,只需升级到JMockit 0.999.11,它可以与TestNG 6.2+透明地工作,而无需指定监听器或-javaagent参数(除非在JDK 1.5上运行)。

相关问题