Как я могу утверждать, что поле не пустое с Codeception/PhantomJS?

У меня есть форма, которая при заполнении и нажатии возвращает список почтовых индексов в скрытое поле. Я хочу утверждать, что список полей заполнен. Однако я бы не хотел сверять значения полей с каким-либо конкретным списком, чтобы в будущем можно было внести изменения в перепись или почтовую информацию. Как я могу просто утверждать, что поле не пустое с WebDriver Codeception? я пытался использовать

$set_zips = $I->grabValueFrom('#zips');
$this->assertFalse(empty($set_zips));

а также

$I->cantSeeInField('#zips', '')`

но не смог проверить это, хотя поле фактически заполнено.


person apkostka    schedule 08.11.2014    source источник
comment
$set_zips было опечаткой, сейчас исправил. Что касается cantSeeInField(), то это псевдоним для dontSeeInField(), описанный здесь.   -  person apkostka    schedule 11.11.2014
comment
Я немного покопался и выяснил, что cantSeeInField() использует assertContains, то есть использует второй аргумент как иголку, а значение поля — как стог сена. Таким образом, нулевое значение в качестве второго аргумента cantSeeInField() всегда будет возвращать значение true.   -  person apkostka    schedule 11.11.2014


Ответы (1)


Я смог создать помощника для этого:

function dontSeeFieldIsEmpty($value)
{
    $this->assertFalse(empty($value));
}

Я поместил это в tests/_support/AcceptanceHelper.php и назвал в своем Cest:

$I->dontSeeFieldIsEmpty($I->grabValueFrom('#set_zips'));
person apkostka    schedule 11.11.2014