Как условно сделать тест каратэ неудачным (с JavaScript) - PullRequest
1 голос
/ 16 апреля 2020

Как я могу сделать тест неудачным, используя javascript?

В соответствии с документацией это должно сделать:

* if(true) throw 'custom message'

, но я получаю эту ошибку :

findAuthDataByUserAndApp.feature:20 - javascript evaluation failed: if(true) throw 'custom message', custom message in <eval> at line number 1 at column number 9

(что я хотел бы сделать, это условно сопоставить код ответа на основе __arg в функции многократного использования, например)

* if(__arg.statusCode != null && responseStatus != __arg.statusCode) throw 'custom message

Спасибо

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

Я нашел элегантное решение для моей первоначальной проблемы:

* def expectedStatusCode = req.statusCode || responseStatus
* match responseStatus == expectedStatusCode

(иногда решения просто проще ...)

0 голосов
/ 16 апреля 2020

Вы не можете, и throw - это просто обходной путь для пользователей, которые настаивают на каком-то «дополнительном» сообщении в журнале. «Ошибка» - это то, как она разработана в настоящее время, тест не пройден, он просто «выглядит» как ошибка JS. Мы рекомендуем другие шаблоны.

* def failed = true
* if (failed) karate.log('custom message')
* assert !failed

Если вы настаиваете, я могу открыть запрос функции для karate.fail(condition, message) метода, который бы делал выше. ИМХО его не следует использовать, потому что в идеале тесты должны быть детерминированы c.

...