Как сделать интеграционное тестирование с J Git и Spring? - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь написать несколько юнит-тестов, используя репозиторий для тестирования, а не тот, что в "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 с автопроводкой, это ' Будет ли использовать этот репо вместо?

...