0

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

假设该选项卡的元素是 id=email。

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

现在,我有:

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

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

4

1 回答 1

2

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

当该字段设置为禁用时,您还可以使用 $this->markTestSkipped()。它记录在 PHPUnit 帮助第 9 章。不完整和跳过的测试中

样本:

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.');
    }
}
于 2012-10-29T14:48:38.860 回答