Модульные тесты не инициализированы

В моем spring boot Приложение, у меня есть следующие зависимости:

   <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <version>1.5.2.RELEASE</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>

У меня есть метод в следующем классе, который мне нужно проверить:

@Service
public class DataExtractorService {

    @Autowired
    LinksWriterService writer;

    Kinkester kinkester;

    public DataExtractorService(){
        kinkester=new Kinkester();
    }

    public Kinkester extractor(String rowData){
          String pattern = "(\\d+)(\\D*)";

          Pattern r = Pattern.compile(pattern);

          Matcher m = r.matcher(rowData);
          if (m.find( )) {
             System.out.println("Found value: " + m.group(0) );
             System.out.println("Found value: " + m.group(1) );
          }else 
              System.out.println("NO MATCH");
          kinkester.setAge(Integer.parseInt(m.group(0)));
          kinkester.setRole(m.group(1));

        return kinkester;
    }
}

а затем тестовый класс:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = SeleniumApplication.class)
@WebAppConfiguration

public class DataExtractorTest {


    @Autowired
    DataExtractorService dataExtractorService;

    @Test
    public void extractor(){
        Kinkester kinkester = dataExtractorService.extractor("45M");
        System.out.println(kinkester.getAge());
        //assertEquals(kinkester.getAge(),45);

    }       
}

Но, к сожалению, тест не запускается. жалуется с

Initialization Error (Runner: Junit 4 )

Я пробовал приведенный ниже код, но до сих пор не получил ответ:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {SeleniumApplication.class})

1 ответ

Решение

Ваш тестовый класс должен быть помечен:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = SeleniumApplication.class)

Для этого бегуна JUnit требуется версия JUnit>= 4.12. Ваша зависимость от spring-boot-starter-test принесет требуемую версию JUnit транзитивно, так что вы можете удалить зависимость от JUnit. Ваша зависимость от explcit от JUnit 4.11 противоречит ожиданиям JUnit от Spring.

Другие вопросы по тегам