Я новичок в JUnit
. Ниже приведена иерархия классов, в которой классы в верхней и нижней частях иерархии имеют методы @Test
. Когда я выполняю целую цепочку, ConverterBaseEnquiryTest
, которая находится в середине иерархии, также выполняется. (Это мое предположение, потому что я вижу исключение в surefire
отчетах с этим именем). И я получаю ошибки инициализации от ConverterBaseEnquiryTest
, потому что это не должно было быть выполнено. Есть ли способ выяснить, почему это происходит? Пожалуйста, дайте мне знать, если что-нибудь еще, я должен войти в вопрос, чтобы построить больше понимания.Тест JUnit выполняется, когда он не должен
Ниже моя иерархия:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:spring/test-default-context.xml"
})
@TransactionConfiguration(transactionManager="profile.transactionManager", defaultRollback=false)
@Ignore
public class BaseCommonTest extends AbstractTransactionalJUnit4SpringContextTests {
abstract public class ConverterBaseTest<F,T> extends BaseCommonTest {
// ...
}
public class ConverterBaseEnquiryTest<F, T> extends ConverterBaseTest<Enquiry, T> {
// ...
}
public class EnquiryToDvsMedicareRequestConverterTest extends ConverterBaseEnquiryTest<Enquiry, DvsMedicareRequest> {
// ...
}
Чтобы уточнить исключение: когда я запустил тест из запроса EnquiryToDvsMedicareRequestConverterTest, он удовлетворит оба требования типа. Но когда запущен ConverterBaseEnquiryTest, у него нет обоих типов. И вот откуда это исключение. –
amit
Пожалуйста, разместите команды, которые вы используете для запуска тестов, а также журнал из прогона. Также поможет конфигурация плагина surefire от вашего pom. –
Замечание: многие люди говорят, что вам действительно нужно держаться подальше от использования «наследования» в качестве «общего кода» для модульных тестов. Я частично согласен с этим; и мой намек на вас: даже когда это требует «более кодирования»; старайтесь избегать сложных моделей «наследования» для вашего тестового кода ... по крайней мере изначально; и только начинайте использовать такие вещи, когда вы более глубоко разбираетесь в теме «модульного тестирования». – GhostCat