как использовать Ожидаемые ИсключенияMessageRegExp внутри метода теста - PullRequest
0 голосов
/ 21 июня 2019

Я хотел бы использовать тип исключения assert и сообщение в testng @test, где мое требование состоит в том, чтобы передать ожидаемое сообщение из внешнего источника данных, который нелегко передать как параметр с @ test

Попробовал этоtestng solution

@Test(expectedExceptions = StatusRuntimeException.class , expectedExceptionsMessageRegExp ="ExceptionMsg")

хотите добиться чего-то подобного приведенному примеру Junit

  @Test
public void testMethod(){

valiadteException();      

}
public void valiadteException(){      
 exception.expect(StatusRuntimeException.class);
        exception.expectMessage("ExceptionMsg");
}

1 Ответ

0 голосов
/ 21 июня 2019

Вы передаете регулярное выражение, которое не соответствует выходному сообщению.

Если вы ожидаете часть полного сообщения, попробуйте использовать:

@Test(expectedExceptions=StatusRuntimeException.class, expectedExceptionsMessageRegExp =".*ExceptionMsg.*")

Это будет проверять, что сообщение содержит ExceptionMsg где-то в сообщении.

Однако, если ExceptionMsg - ожидаемое полное сообщение, вы должны экранировать специальные символы регулярного выражения, чтобы оно работало.

Специальные символы, такие как ., должны быть экранированы путем добавления символа экранирования \ перед специальным символом, например, так: \.

Я не могу дать больше информации без более конкретной информации.сообщение.Если вы добавите ожидаемое сообщение, я могу указать его экранированную версию в своем ответе.

РЕДАКТИРОВАТЬ:

Если вы хотите что-то вроде второго, я не будузнать, существует ли он в testng, однако вы можете сделать это следующим образом:

@Test
public void testMethod(){
    // test code
    try {
        // call function/method that throws the StatusRuntimeException
    } catch (StatusRuntimeException ex) {
        // validate the exception
        Assert.assertTrue(ex.getMessage().contains("ExceptionMsg"));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...