2016-09-12 1 views
0

В качестве примера я хотел бы проверить, является ли маршрут, по которому я иду, правильный маршрут, единственная проблема - каждый раз, когда я посещаю маршрут, число меняется. Как бы я настроил свое поведение, чтобы найти какое-то число после подопечных и позволить ему пройти. Так что у меня есть:Как настроить поведение, чтобы проверить, есть ли я на маршруте с динамическим номером?

Тогда я должен быть «/ клиники/участника/создать/{ID}»

что скобка {ID} всегда будет динамичным и, если это возможно, я хотел бы либо игнорировать последний id или помещать подстановочный символ какого-то рода, чтобы сказать, что передано здесь, работает, пока его число.

Это моя работа, но мне все равно хотелось бы узнать, есть ли способ сделать это проще и чище.

public function iShouldBeOnRoute($url) 
{ 
    $urlArray = explode('/', $url); 
    $urlPath = $this->getSession()->getCurrentUrl(); 

    $urlPathArray = explode('/', $urlPath); 
    $testedUrl = join('/', $urlArray) . end($urlPathArray); 

    $this->assertSession()->addressEquals($testedUrl); 
} 

ответ

0

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

Например:

I am on create participant page

этот шаг должен содержать:
- найти элемент -> получить HREF атрибута, сохранить его в переменной
- использование посещения с этой переменной

The css селектор должен быть:

a[href*='/clinic/participant/create/']

Если у вас есть идентификатор, и вам нужно только проверить, что URL содержит этот идентификатор вы могли бы просто использовать StrPos! == ложь и бросить исключение или утверждают.

+0

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

Смежные вопросы