TestNG Test Case завершается неудачно с JMockit «Неверный контекст для записи ожиданий» - PullRequest
0 голосов
/ 26 октября 2011

Следующий тестовый пример 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 Ответ

1 голос
/ 14 ноября 2011

JMockit-TestNG Initializer должен запускаться один раз для всего запуска теста, поэтому использование @Listeners для отдельных классов тестирования не будет работать.

Вместо этого просто обновитесь до JMockit 0.999.11, который прозрачно работает с TestNG 6.2+, без необходимости указывать слушателя или параметр -javaagent (если не работает на JDK 1.5).

...