Я пытаюсь написать несколько юнит-тестов, используя репозиторий для тестирования, а не тот, что в "prod". У меня есть bean-компонент, настроенный для клонирования репозитория:
@PostConstruct
public void cloneRepository()
{
try
{
this.repo = Git.cloneRepository().setURI(this.repoNAme).setBranch("master")
.setCredentialsProvider(new UsernamePasswordCredentialsProvider(this.GIT_USERNAME, this.GIT_PASSWORD)).call();
}
catch (GitAPIException e)
{
this.LOG.error(e.getMessage());
}
}
@Bean
public Git getRepo()
{
return this.repo;
}
Так что это прекрасно работает в prod в моем контроллере REST:
@Autowired
private Git repo;
Но когда я делаю тесты, остальной контроллер теперь имеет repo
как ноль. В тестовом классе у меня есть инициализация временного репо во временном каталоге перед каждым тестом:
@MockBean
private Git repo;
@Before
public void setupGit() throws IllegalStateException, GitAPIException
{
this.repo = Git.init().setDirectory(this.tempRepo.getRoot()).call();
}
, когда я использую @MockBean
, не означает ли это, что в любом месте, где требуется Git
с автопроводкой, это ' Будет ли использовать этот репо вместо?