#java #junit #abstract
#java #junit #аннотация
Вопрос:
Извините, что задал, казалось бы, уже заданный вопрос, но я не смог найти ответ. Извините, если на этот точный случай уже был дан ответ. Если да, пожалуйста, укажите мне на поток.
public abstract class AbstractBuilderTest {
protected OutputBuilder builder;
protected abstract OutputBuilder createBuilder(String rootName);
@Test(expected = NullPointerException.class)
public void testAddAboveRoot() {
String invalidResult
= "<orders>"
"<order>"
"</order>"
"</orders>"
"<customer>"
"</customer>";
builder = createBuilder("orders");
builder.addBelow("order");
try {
builder.addAbove("customer");
fail("expecting java.lang.RuntimeException");
} catch (RuntimeException ignored) {
}
}
}
public class DOMBuilderTest extends AbstractBuilderTest {
@Override
protected OutputBuilder createBuilder(String rootName) {
return new DOMBuilder(rootName);
}
}
public class XMLBuilderTest extends AbstractBuilderTest {
@Override
protected OutputBuilder createBuilder(String rootName) {
return new XMLBuilder(rootName);
}
}
С JUnit3, где вы расширяете TestCase, это может выполняться, однако с JUnit 4 он выдает:
java.lang.InstantiationException
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
Комментарии:
1. Скорее всего, вы прикрепляете к своим классам некоторые аннотации JUnit, которые вы нам не показали. Знаете, это очень важно.
2. импортируйте статический org.junit. Assert.fail; импортируйте org.junit. Тест;
3. Аннотации — это те вещи, которые начинаются с «@».
4. Да.
@Test
—>import org.junit.Test
; Я думаю, вы знаете, что@Override
это значит. Это все.5. Итак, вы говорите мне, что на нем нет аннотаций
class AbstractBuilderTest
?