首页 > 解决方案 > 如何使用 Codeception 在验收测试中断言 jQuery 设置的值?

问题描述

我正在用 WordPress 编写一个用于管理狗收养的应用程序。在一种情况下,用户从一个选择中选择一个主要品种,从另一个选择中选择一个次要品种。当他们选择品种时,输入(只读)字段将填充 2 个选择的值。

我想对此进行测试,并且我已经编写了一个验收测试来做到这一点。从 select 中选择狗品种,并通过 jQuery 将值添加到输入中:

填写了 Dog 值的字段的图像

麻烦的是,当我尝试断言文本存在时,我不断收到错误并且测试失败。以下几行是我尝试过的:

$I->see('Kelpie X');
$I->seeElement( '#acf-field_mdr_dog_text_breed_name', ['value' => 'Kelpie X']);
$I->seeInField( 'input#acf-field_mdr_dog_text_breed_name', 'Kelpie X');

为什么这些条件没有通过?是否必须这样做,因为 jQuery 设置了值?

谢谢!

标签: codeception

解决方案


我不确定为什么第一个不起作用,但我注意到输入文本字段中的值在 X 之后有一个空格。显然seeInField&seeElement非常严格,所以这样做了:

// Note the space after the X
        $I->seeElement( 'input#acf-field_mdr_dog_text_breed_name', ['value' => 'Kelpie X ']);
        $I->seeInField( 'input#acf-field_mdr_dog_text_breed_name', 'Kelpie X ');

推荐阅读