2013-07-23 3 views
1

У меня есть класс C, который должен расширять класс N, поскольку он обеспечивает функциональность, которую я должен иметь. Я хочу, чтобы C был JUnit-тестом, поэтому я хочу расширить TestCase, потому что я использую тестовый исполнитель, объект Junit suite, который требует, чтобы тесты добавлялись к типу TestCase. Это означает, что я должен использовать расширение TestCase.Реализация теста вместо расширения TestCase в Junit [Java]

Java, однако, не допускает множественного наследования, поэтому мне нужно вместо этого использовать интерфейс. Есть ли существующий интерфейс? Или есть способ динамически выполнять тесты Junit, которые не распространяются на TestCase?

+0

какая версия junit вы используете? – radai

+0

Для этого вам нужно использовать JUnit4. – Olaf

ответ

1

Я больше не продлеваю Test или TestCase. Я использую аннотации @Test с версии 4.4.

+0

Очевидно, что он не использует новые аннотации API ;-) –

+0

@ D.R .: Не очевидно для меня вообще, может быть, он просто привык к старому? – Keppil

+0

Я адаптировал свой ответ ... не знал, как кто-то может знать об модульных тестах, но спать годы эволюции API '* g *' –

0

интерфейс называется Test см: http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/Test.html

Однако в более новых версиях JUnit вы должны обязательно идти на @Test атрибут и добавить свои тестовые классы в ваш номер, указав тип через YourTestClass.class

+0

Это * может * быть тем, что я ищу. Ваше предложение abut @Test не работает, потому что я пытаюсь сделать что-то вроде нового теста (x), нового теста (y) и т. Д. Я динамически создаю тесты во время выполнения; Я не могу просто указать конкретные классы. –

+0

Если вы не можете указать конкретные классы, вы можете динамически их определять с помощью отражения. –

1

Вам действительно нужен ваш класс C для расширения N? Не можете ли вы просто выбрать композицию вместо расширения? Ваш C может иметь N как внутренний атрибут и использовать функции, предоставляемые им. Просто идея.

+0

Во всяком случае, я бы сначала избегал наследования между модульными тестами. – Olaf

+0

Нет, я не могу их сочинить; N имеет защищенные методы, и я не могу поместить C в тот же пакет, потому что я не писал N. –

 Смежные вопросы

  • Нет связанных вопросов^_^