2014-01-13 38 views
1

我正在爲我們的內部CMS設置一個自動測試負載。在Codeception驗收測試中測試圖像

在這個時候,我希望能夠測試我們的測試頁面中是否有特定的圖像。

我可以檢查是否存在圖像將被顯示的字幕......

$I->see('Image Caption'); 

...但我真的想真正能夠檢查圖像本身的存在.. 。

$I->seeImage('/path_to/image_file.jpg'); // I MADE THAT METHOD UP 

...或者至少img標籤...

$I->seeSourceCode('<img src="/path_to/image_file.jpg"'); // I MADE THAT METHOD UP TOO 

有誰知道怎麼做次是什麼?

+0

究竟你的形象「標題」是什麼意思?這就是我想要做的.. –

+0

這只是我用來檢查圖像可能已加載的文本,因爲我無法弄清楚如何檢查加載的實際圖像。我認爲當時下面的解決方案適用於我,但說實話,我們不再使用Codeception,因此我現在可能已經忘記了它的一切! – WalterEgo

回答

6

seeElement()可能適合您的需要,例如:
$I->seeElement('//img[@src="/pixel.jpg"]');
請不要see doc
和,爲了讓測試更具可讀性,我建議在helper換到seeElement()的實際調用在測試有這樣的事情
$I->seeImageWithSource('/pixel.jpg')

public function seeImageWithSource($image_url) 
{ 
    $phpBrowser = $this->getModule('PhpBrowser'); 
    $phpBrowser->seeElement('//img[@src="'.$image_url.'"]'); 
} 
+0

感謝您的支持。這一個開箱即用...... '$ this-> seeElement('// img [@src =''。$ image_url。'「]');' 但我同意包裝它,所以我將它添加到WebHelper中 'public function seeImageWithSource($ image_url) { $ this-> seeElement('// img [@src =''。$ image_url。'「]'); }' 然編譯命令,並試圖... '$ I-> seeImageWithSource($ IMAGE_URL);' 但得到調用未定義的方法Codeception \模塊\ WebHelper :: seeElement()。 我做錯了什麼? – WalterEgo

+1

您應該從PhpBrowser模塊實例調用'seeElement'方法,即 'public function seeImageWithSource($ image_url) { $ phpBrowser = $ this-> getModule('PhpBrowser'); $ phpBrowser-> seeElement('// img [@src =''。$ image_url。'「]'); }' –

+0

賓果!感謝那。 – WalterEgo

相關問題