У меня есть такой тестовый модуль:
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserTest {
@Autowired
UserRepository userRepository;
@Test
public void createTest() throws Exception {
//... blah blah blah
Это не удалось, потому что я не могу загрузить userRepository
с помощью @Autowired
:
Failed to load ApplicationContext
java.lang.IllegalStateException: Failed to load ApplicationContext
Я надеваю не имеет applicationContext.xml
как , это предполагает .
Моя структура проекта выглядит примерно так:
.
├── main
│ ├── java
│ │ └── com
│ │ └── foo
│ │ └── bar
│ │ ├── Main.java
│ │ ├── models
│ │ │ └── User.java
│ │ └── repositories
│ │ └── UserRepository.java
│ └── resources
│ ├── application.yaml
│ ├── public
│ └── templates
└── test
└── java
└── com
└── foo
└── bar
└── models
└── UserTest.java
В этом проекте интенсивно используются аннотации. В моем классе Main
у меня есть что-то вроде этого:
@SpringBootApplication
@PropertySources({
@PropertySource("classpath:application.yaml"),
})
@EnableJpaRepositories(basePackageClasses = {
UserRepository.class,
})
public class Main {
public static void main(final String[] args) throws Exception {
SpringApplication.run(App.class, args);
}
}
Я использую Gradle и у меня есть следующие тестовые зависимости:
testImplementation 'junit:junit:4.13'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'org.hamcrest:java-hamcrest:2.0.0.0'
Вопрос:
Может кто-нибудь объяснить мне, что происходит и каковы возможные причины и решения для чего-то подобного?