У меня странная проблема с использованием groovy, я нашел обходной путь, но я совсем не удовлетворен, поэтому, возможно, кто-то сможет мне помочь:
Я использую ReadyAPI 2.8.В моих тестовых случаях у меня есть отличные шаги.В одном из них я восстанавливаю строку из предыдущего шага тестирования и хочу выполнить определенную обработку, если она соответствует строке «TJA470».Предыдущий шаг теста дает строку, которая является выводом команды ssh.
вот код шага groovy:
def hbox_ref = context.expand( '${get current HBox reference#hbox_ref}' )
// this returns me the data as a String
log.info hbox_ref
log.info "\"$hbox_ref\"" // to check if there is no spurious blank
log.info hbox_ref.class
log.info (hbox_ref == "TJA470") => returns false
log.info (hbox_ref.equals("TJA470")) => returns false
log.info (hbox_ref.contains("TJA470")) => returns true
вот результат консоли:
Fri Sep 20 16:13:17 CEST 2019: INFO: TJA470
Fri Sep 20 16:13:17 CEST 2019: INFO: "TJA470
"
Fri Sep 20 16:13:17 CEST 2019: INFO: class java.lang.String
Fri Sep 20 16:13:17 CEST 2019: INFO: false
Fri Sep 20 16:13:17 CEST 2019: INFO: false
Fri Sep 20 16:13:17 CEST 2019: INFO: true
Простой тест == или равен, хотя есть различия, я использую их во всех других сравнениях того же типа, и он работает.
Как вы можете видеть здесь, большинство логических случаев возвращают false иЯ действительно не могу понять, почему.
Если я выполняю тот же сценарий в таком инструменте, как «отличная площадка», он работает, как и ожидалось!: (
Я вообще не специалист в Groovy, и, должно быть, я что-то упустил, но мне это очень сложно!
Если кто-то может помочь ... спасибо