0

Web サイトのテスト スクリプトを作成しています。Web サイトにはタブ (ナビゲーション リンク) があります。

たとえば、そのタブの要素は id=email です。

それが存在しない場合、テスト全体をスキップすることは可能ですか。すべてのテスト ケースは、そのタブ (id=email) に基づいています。

今、私は持っています:

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

すべてのテスト スクリプトはそのようなものなので、何もテストせずにブラウザーを開いて閉じるだけです。それはそれらすべてを通過しています。その要素が存在しない場合、テストをスキップすることは可能ですか?

4

1 に答える 1

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