Codeception 测试失败,即使 try-catch
Codeception test fails even though try-catch
我是 PHP 和 Codeception 的新手,我一直在尝试使用页面对象编写一些基本测试。
这是我页面中的一个函数示例 class。理想情况下,它应该单击一个按钮,如果没有按钮,则只记录一条评论。
try {
$I->click(self::$buttonAddNewAddress);
} catch (Expection $e) {
$I->comment('This address will be the first one');
}
我得到 «Fail Link or Button or CSS or XPath element with '//div[@class="buttons-set"]/button ' 没有找到。”每次我尝试 运行 这个代码。
在AcceptanceTester.php中我有一个方法跟我很像:
try {
$I->click('//a[contains(.,"No Thanks")]');
} catch (Exception $e) {
$I->comment('No email capture visible');
}
如果 link 不可见,它也能正常工作。除了第一个垃圾代码位于页面 class 和第二个垃圾代码位于 AcceptanceTester.php.
之外,我没有看到任何区别
请帮我解决这个问题,或者给我建议如何重写这部分代码。
如果您在命名空间中进行测试(您应该这样做),代码将尝试捕获来自该命名空间的异常。
即
namespace MyTest;
try {
$I->click(self::$buttonAddNewAddress);
} catch (Exception $e) {
$I->comment('This address will be the first one');
}
这只会捕获一个\MyTest\Exception
。
您需要将 \
添加到您的代码中。
namespace MyTest;
try {
$I->click(self::$buttonAddNewAddress);
} catch (\Exception $e) {
$I->comment('This address will be the first one');
}
我是 PHP 和 Codeception 的新手,我一直在尝试使用页面对象编写一些基本测试。
这是我页面中的一个函数示例 class。理想情况下,它应该单击一个按钮,如果没有按钮,则只记录一条评论。
try {
$I->click(self::$buttonAddNewAddress);
} catch (Expection $e) {
$I->comment('This address will be the first one');
}
我得到 «Fail Link or Button or CSS or XPath element with '//div[@class="buttons-set"]/button ' 没有找到。”每次我尝试 运行 这个代码。
在AcceptanceTester.php中我有一个方法跟我很像:
try {
$I->click('//a[contains(.,"No Thanks")]');
} catch (Exception $e) {
$I->comment('No email capture visible');
}
如果 link 不可见,它也能正常工作。除了第一个垃圾代码位于页面 class 和第二个垃圾代码位于 AcceptanceTester.php.
之外,我没有看到任何区别请帮我解决这个问题,或者给我建议如何重写这部分代码。
如果您在命名空间中进行测试(您应该这样做),代码将尝试捕获来自该命名空间的异常。 即
namespace MyTest;
try {
$I->click(self::$buttonAddNewAddress);
} catch (Exception $e) {
$I->comment('This address will be the first one');
}
这只会捕获一个\MyTest\Exception
。
您需要将 \
添加到您的代码中。
namespace MyTest;
try {
$I->click(self::$buttonAddNewAddress);
} catch (\Exception $e) {
$I->comment('This address will be the first one');
}