如果元素不存在,是否可以跳过测试?

时间:2012-10-27 00:09:41

标签: selenium phpunit

我正在为网站编写测试脚本。该网站有标签(导航链接)。

让我们说,该标签的元素是id = email。

如果不存在,是否可以跳过整个测试。所有测试用例都基于该选项卡(id = email)。

现在,我有:

if($this->isElementPresent("id=email") == true) {
    perform these steps
}

所有测试脚本都是这样的,所以它只是打开浏览器并关闭它而不进行任何测试。它正在传递它们。如果该元素不存在,是否可以跳过测试?

1 个答案:

答案 0 :(得分:2)

我会将测试配置为使用相同的设置来查看字段是否存在,而不是跳过测试。模拟您的配置,并设置为禁用,然后测试应查找字段的缺失,并进行相应的测试。然后,将配置设置为启用,并测试该字段是否存在并进行相应的测试。

当该字段设置为禁用时,您还可以使用$ this-> markTestSkipped()。它记录在PHPUnit帮助Chapter 9. Incomplete and Skipped Tests中。

样品:

public function testEmailIdAbsent()
{
    if($this->MockConfiguration['Email'] == 'disabled')  // Or however your configuration looks
    {
         $this->assertFalse($Foo->IsElementPresent("id=email", "Email ID is present when disabled.");
        ...
    }
}

public function testEmailIdPresent()
{
    if($this->MockConfiguration['Email'] == 'enabled')  // Or however your configuration looks
    {
         $this->assertTrue($Foo->IsElementPresent("id=email", "Email ID is not present when enabled.");
        ...
    }
}

public function testEmailId()
{
    if($this->MockConfiguration['Email'] == 'disabled') // Or however your configuration looks
    {
        $this->markTestSkipped('Email configuration is disabled.');
    }
}