Тест генерирует исключение NullPointerException вместо RandomCustomException, но только в некоторых средах - PullRequest
0 голосов
/ 31 января 2019

Я работаю над проектом с большим количеством людей и филиалов.Есть тест, написанный кем-то другим, который странным образом проходит в некоторых средах и не проходит в некоторых других.

Мы работаем над отдельными ветками, но мы убедились, что видим ту же версию проектас

git pull origin develop

Код выглядит следующим образом:

@Test(expected = RandomCustomException.class)
 public void saveReturnsWithCustomException() throws 
   RandomCustomException {
   xService.save(notValidX);   
}

В некоторых средах он генерирует исключение NullPointerException, таким образом происходит сбой, в некоторых других он генерирует исключение RandomCustomException.

Мы проверили это, и это странно, но все связанные коды кажутся абсолютно одинаковыми во всех средах.

Мой xService выглядит так:

  public X saveX(X x) throws RandomCustomException {
if (!validXName(X.getName())) {
  throw new RandomCustomException("The given name wasn't correct or the field is empty!");
}
return xRepository.save(x);

xRepository смоделирована втест.

xRepository:

public interface xRepository extends JpaRepository<X, Long> {
  X findByApplicationUser(ApplicationUser applicationUser);
}

У кого-нибудь есть предложения, в чем может быть проблема?

1 Ответ

0 голосов
/ 31 января 2019

Проблема в том, что в этом методе переменная x не гарантируется как не пустая, поэтому, вероятно, она выдает NullPointerException при вызове метода getName.

  public X saveX(X x) throws RandomCustomException {
if (!validXName(X.getName())) {
  throw new RandomCustomException("The given name wasn't correct or the field is empty!");
}
return xRepository.save(x);

Я могу только предположить, что причина можетбыть, если «х» боб.Это может не соответствовать всем требованиям в этой среде для создания экземпляров.Вы можете попробовать повернуть логи для отладки, поищите их.

...