Как запустить тесты на Spring c использованием gradle?
Здравствуйте дорогие коллеги! Ситуация:
- -Spring Boot проект;
- -сборщик Gradle;
- -сервис по адресу http://localhost:8082/formhtml должен отдать страницу с текстом.
- на всякий случай проект на GitHub:этот проект на гите
вот тест:
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class MainPageTest {
@Autowired
private MockMvc mockMvc;
@Test
public void contextLoads() throws Exception {
this.mockMvc.perform(get("http://localhost:8082/formhtml"))
.andDo(print())
.andExpect(status().isOk())
.andExpect(content().string(containsString("Financial forecast:")));
}
}
файл Gradle:
plugins {
id 'org.springframework.boot' version '2.3.0.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'java'
id 'io.freefair.lombok' version '5.0.0'
}
group = 'kondratov.spring_feign'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
ext {
set('springCloudVersion', 'Hoxton.SR5')
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
implementation 'org.springframework.boot:spring-boot-starter'//добавил
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-tomcat'
implementation 'org.springframework:spring-test'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}
во-первых: @Runwith горит красным и предлагает добавить JUNIT

во-вторых: после добавления, и попытки выполнения теста падает с такими словами:

Собственно вопрос, не пойму как подойти к тестированию: Что добавить в зависимости, какие аннотации использовать и т.д. Эти аннотации я взял и учебного проекта на ютубе, но там мавен и Junit-а в зависимостях нет. В общем кто что посоветует? Большое спасибо!
Ответы (2 шт):
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.0</version>
<scope>test</scope>
</dependency>
добавте в ваш pom.xml файл если у вас сборка через мавен
вот зависимость для Gradle
// https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.7.0'
@RunWith Это часть Junit 4. В Junit 5 эта часть заменена на @ExtendWith, следовательно первое можно удалить. А второе можно не добавлять, т.к. оно уже есть на @SpringBootTest. После чего всё должно заработать.
P.S. Удали @SpringBootApplication c kondratov.spring_feign.feign.PropertyService.