Я получаю эту ошибку, когда запускаю тестирование для своего класса обслуживания, но не при запуске всего приложения.Он жалуется, потому что не может найти компонент типа CrimeRepository
.Это мой тестовый класс:
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = { CrimeServiceDBImpl.class, CrimeController.class, Crime.class })
@ComponentScan("com.springmiddleware")
@AutoConfigureMockMvc
@SpringBootTest
public class TestCrimeServiceDB {
@Mock
Connection connection;
@Mock
private Statement mockStatement;
private CrimeServiceDBImpl service = new CrimeServiceDBImpl();
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test // test connessione db
public void connect() {
try {
Class.forName("org.postgresql.Driver");
connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/crimesdb", "postgres", "admin");
assertTrue(connection.getSchema().equals("public"));
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
Это CrimeServiceDbImpl
:
Service
public class CrimeServiceDBImpl implements CrimeService{
@Autowired
private CrimeRepository repository;
И это CrimeRepository
класс:
@Repository
public interface CrimeRepository extends JpaRepository<Crime, Long>{
}
Этоосновной класс приложения:
@SpringBootApplication(scanBasePackages= "com.springmiddleware")
@ComponentScan({"com.springmiddleware"})
@EnableAutoConfiguration
@EntityScan("com.springmiddleware")
@EnableJpaRepositories("com.springmiddleware")
public class SpringMiddlewareApplication {
public static void main(String[] args) throws IOException {
SpringApplication.run(SpringMiddlewareApplication.class, args);
}
}
Я сканирую все пакеты, так как это организация проекта: ![enter image description here](https://i.stack.imgur.com/Jr5Bp.png)
Для того, что я видел, аннотации кажутся нормальными,Я не знаю, что мне не хватает