Force negative test result TestNG WebDriver

else {
                            invalidLinksCount++;
                        }
                    }
                }
                System.out.println("Total no. of invalid links are "
                                   + invalidLinksCount + "/" + administrationLinks.size());
                if (invalidLinksCount !=0){
                    throw new Exception("Correct no. of links doesn't match");
                }
            }
            catch (Exception e) {
                e.printStackTrace();
                logger.error(e.getMessage());
            }

Я думаю, все знают, какой результат получается в консоли/логах.
Что нужно применить, чтобы тесты были завалены? Чтобы было понятно, что с линками есть проблемы.
В идеале получить желтое.
Или же зеленые тесты - красные логи это идеал тестирования?

Ответ:

if (invalidLinksCount !=0){
                    Assert.fail(String.valueOf(invalidLinksCount != 0));
                    logger.error ("Correct no. of links doesn't match");
               }

или

Assert.assertEquals(invalidLinksCount, 0, "msg");

Assert.fail(“Because…”);

1 лайк

не делайте так.

Assert.assertEquals(invalidLinksCount, 0, "msg");
2 лайка

Я не говорю, что это самое лучшее мое решение, но почему нет? Я проверил результаты с разных сторон, вроде косяков нет.

//if (invalidLinksCount !=0){
                    Assert.fail(String.valueOf(invalidLinksCount != 0));
                    logger.error ("Correct no. of links doesn't match");
//                }

В том что:

  1. с закоменченым ифом будет failed всегда - и на true и на false.
  2. сообщение true не очень информативное.
  3. логика теста искалечена.

Про закоменченный if я уже выяснил. Для себя убрал. Для остальных: может найдут лучше решение, конструкция не обязательная.